I have not had enough sleep for days, but I don't think my math is that bad, 15.5 to 21.4 means we had a 5.9 hashrate increment, if not for the halving we would (in theory) have had double that which is 11.8, so 15.5T + 11.8T = 27.3T or 76%. I think your mistake was multiplying the total difficulty of 21.4 by 2 to make up for the halving, keep in mind that 15.5T of that is the old difficulty which has nothing to do with the theoretical new difficulty, do I make any sense?
The instant after the halving, it suddenly took 2X the work to mine the same amount of BTC. So if the purpose of the comparison is in relation to profitability, then I think multiplying the post halving difficulty by 2, or dividing the pre-halving difficulty by 2, is correct.
But in terms of using diff to estimate hashrate, there is no correction. The block reward amount does not come into the equation for diff correction, so 21.4T before or after the halving still produces the same estimated network hashrate.
As far as the ability to produce insane amounts of miners quickly, I don't think it would be as hard as you think for them to ramp up. And with this extended time of high profitability, they have plenty of time to secure contracts with all those giant >100MW farms, and expand their manufacturing capacity if required. They can't deliver those 37k miners until October because they have to wait for the chips.
The flip side of this, maybe Bitmain decides not to expand production even though demand is sky high, and then sell fewer miners at a much higher price point. Just seems like in the past, they do the opposite, and sell a ton of gear at prices low enough to try to really hurt their competition.