The compensation seats are not only because of the CSU. There have been actually 46 overhang seats.
CDU: 36
in Baden-Württemberg (11), Sachsen-Anhalt (4), Brandenburg (3), Sachsen (3), Hessen (3), Thüringen (3), Rheinland-Pfalz (3), Schleswig-Holstein (3), Mecklenburg-Vorpommern (2), Saarland (1)
CSU: 7
SPD: 3
in Hamburg (2) and Bremen (1)
Right. The system was set up on the assumption that the two leading parties that would win most of the district seats would both be winning 40-ish% of the vote or more. Nowadays, when the leading parties are routinely in the 30s or 20s, they need to think about cutting down on the number of district seats or increasing the number of list seats (the latter being effectively what the overhang seats are, but if they want to reduce the variance in size of the legislature).