I don't know what you mean by "in-depth, mathy explanation". Level is something that's put into the damage formula and it happens to work out that things hit a little harder at level 50. You can go analyse the damage formula if you want but I don't know what exactly you're looking for.
Well I guess I didn't actually know what the damage formula was exactly, I usually just see calculators. But I looked it up and taught myself and I guess I'll share the kind of answer I was looking for.
Basically the damage formula has this weird term in it that's (2*level+10)/250 which acts as a multiplier on the damage done. meanwhile the influence of level on a Pokemon HP in the stat formula is a straight multiplier on the rest of the variables that's then divided by 100.
So the level based multipliers at level 50 are 0.44 damage and aprox 0.5 HP, then at level 100 they are 0.84 damage and aprox 1.0 HP. So basically at level 100 Pokemon have (approximately) 100% more HP but only do about 90.9% more damage. (since all other variable in both formulas would be the same)
EDIT: After looking into it a little more there's this thing on the HP formula I was discrediting too much. Which is the +10 at the end of the formula that's outside the level multiplier. I was basically assuming 10 HP isn't that much so we can say it's approximately a 100% increase but that's not really true. The more HP a Pokemon has the closer to 100% increase it is (because the less that 10HP makes a difference) however even on a Pokemon with a kind of average HP stat that +10 means that the Pokemon has more like 93~94% HP increase from level 50 to level 100.
In more detail a Pokemon like 0 EV Cloyster has about a 91.3% HP increase and then 252 EV Blissey get a 97.2% increase in HP. And Blissey is obviously an extreme example so saying HP increases by 100% is definitely not true.... it more like 94% on average.
Still damage goes up less than HP between level 50 and 100, 90.9 < 94