I think your theory works while the Bladesinger has the expected array 16, 14, 13, 12, 10, 9. However, they're going to mitigate a high percentage of the damage whenever above that.
First-pass analysis - they're in combat for 5 rounds - they're tanking while their allies deliver lethal. One CR 4 creature +5 attack, 27-32 damage per round (usually a Multiattack for call it 15 damage per).
BS L4 with AC 22, HP 22 +5 (Shield)
Ch L4 with AC 18, HP 36 (GWM, GWF)
BS is struck at 10 times, is hit twice, and Shields once. Takes 15 damage. Lives.
Ch is struck at 10 times, is hit four times. Takes 60 damage. Second Wind. Dies.
I know you know this, but at first-glance it is easy to assume that an AC difference of +4 is a constant 20% advantage. We need to focus on the amount it changes the hit percentage: in this case it halves it, and with Shield, quarters it.
BS L4 with AC 22, HP 22 +5 (Shield)
Ch L4 with AC 21, HP 36 (Defense, shield) and no GWM
BS is struck at 10 times, is hit twice, and Shields once. Takes 15 damage. Lives.
Ch is struck at 10 times, is hit 2-3 times. Takes about 38 damage. Second Wind. Lives.
EK fares better as they can have Shield. Takes about 23 damage. Lives.
BS is so well rewarded by ASIs that chances are they take one at 4th and one at 8th. So this sort of AC is only 1 point off the expected array. Dexterity 20 (starts at 16+2), Intelligence 18 (starts at 15+1).
For someone that usually does excellent numerical comparisons, this is pretty shoddy. You've totally ignored that a single critical hit on the bladesinger is instant death for the bladesinger, so, after the second of these combats, the bladesinger is dead, not dying, dead.
Second, you completely ignored the crux of my argument, which is that the GWM fighter is killing his foes more quickly and reducing the number of incoming attacks.
So, same CR 4 creature as the first example (ACs 22 (+5) and 18), the creature has an AC of 14 and an average of 125 hitpoints. Same +5 to attack.
The Bladesinger is +6 to hit with his rapier, and will deal, with GFB, 2d8+4 damage (average of 13), crit of 4d8+4 (22). So a hit percentage of 65% for a per round damage of 8.9 with crits. Add in crit chance and it's That's 14 rounds of fighting -- the Bladesinger is dead in 5.
The Fighter is +7 to hit with his greatsword for 2d6+5 (with reroll) for an average of ~15 damage, crit for ~21, or +2 to hit for ~25 damage, crit for ~32 (the style bonus is about 1.3 damage per hit). That's a hit percentage of 70% for a per round damage of 10.8, or a hit percentage of 45% for a per round damage of 11.6, so let's go with power attacking. That's 11 rounds of combat. Fighter is also dead, in fewer rounds -- 4 rounds to be precise.
It appears your example kills both of them.
But, make them 5th level, and the math changes a lot.
Bladesinger gets +1 to hit and +d8 damage, for a revised hit per round damage of 12.6. He's down to 10 rounds of combat -- but dead in 6.
The fighter gets +1 to hit and an extra attack, for a revised damage per round of ~25.2. His fight lasts 5 rounds, but if he uses his action surge (or shields a hit or two from being an EK or uses maneuvers from BM) he lives to tell about it (the fighter dies in 4 rounds (almost 5), but can end the fight in in fewer rounds with more damage).
Odd what one level does.
Now, if the Bladesinger uses two shields in a fight and doesn't get critted, he can last a few rounds longer, but still dies before he kills the monster. The fighter doesn't really change much by archetype - he still loses at level 4 and has to action surge at level 5 to live.
Changing the monster to a +4 to hit doesn't change the outcome except that the double shield using 5th level bladesinger has a chance to survive if she wins initiative.
Of course, these are statistically averaged fights, so this is the converging outcome. Individual fights will vary, especially given some of the other options available. But a crit from the CR4 will likely end the bladesinger in a single blow by dealing his max hitpoint total in damage in a single hit.