Granted, even ABI-stability to some extend is difficult.
I remember that I have some cheap wifi adapters that aren't supported by in-tree code, but came with a CD (small diameter) that had the SDK on it.
This was unfortunately for the old timespec or w/e the exact struct is called, and I could have ported it to use the new API, especially considering that there are in-tree and/or up-to-date versions for closely related chips, but honestly the lack of easily-accessible tooling for that discouraged me from doing so.
The reason I got them initially is that, some about 2.5y back, they were sold on Aliexpress for 3.50 EUR (~5$) and could do dual-band with at least 40 MHz channels, iirc maybe even 80 MHz on 5GHz. They are just tiny USB-A dongles with a USB 2.0 HighSpeed host interface, but they could do station/softAP/station+softAP, obviously restricted to a single channel.
There's a related issue of a rtl8812-au or rtl8821-au (or compatible) stick (Edimax EW-7822UAC) I got before that, with a USB 3.0 SuperSpeed host interface, intended for trying out a remote radio head point-to-point configuration using polarization-duplex with a recycled satellite-TV dish on each end, as it could do AP-mode on 80 MHz wide channels in the 5 GHz band on Linux, with a 867 Mbit/s link rate (assuming full polarization multiplexing based on the stick's 2x2 MIMO and a circular polarizing feed antenna).