@steve_togo
Hey
1. Does TP-Link have a firmware bug? They are not able to process things quickly.
I would say that is the least likely reason for this, from experience Printers have awful WiFi cards and likely its the client side that is causing this issue. OFDMA is not a "new" technology, its been around for years but only recently built into WiFi. Its actually part of the chipset feature set and is usually on by default so unlikely to be anything TP Link has done here, the chipset will either work or not in respect. this is also likely why it needs rebooted to change this.. gut feeling this is the Printer side compatibility issue.
Again thinking out loud, OFDMA is designed to load as much onto the airspace per subchannel as possible for maximum efficiency, something like a printer which requires a slow consistent feed of data would fall as low priority and have say a theoretical 5% of the substream for its data. When OFDMA is enabled, the printer would need to unpack a lot of packets to find the small fraction that it actually requires, it may simply be that it overwhelms the hardware capability of the printer WiFi Card. I know OFDMA doesnt work well on really old G/N grade hardware, this printer is likely using that for WiFi, they reported massive packet drops due to the lack of de-capsulation capacity at the client side.
2. Why are they not able to determine that the link is not capable of OFDMA and switch back to legacy transport when communicating with that client.
This is done at the chipset and is how the datagrams are arranged during stream, switching it on and off randomly would completely mess with guard intervals / timings on the WiFi. Without going into the deep dive (its too late tonight for that :) ), its simply not possible to do, its either ON or OFF
Bear in mind that disabling OFDMA will have an effect on performance, it can sometimes be as high as 40%
You could also try checking to see if the printer has a setting to not process printing until the entire job is cached locally. I know HP printers years ago needed that enabled when PCL6 came out for a similiar reason, it also didnt like recieving jobs piecemeal.. caching on the printer then start printing fixed that.