Running a wire isn't an option for devices which don't have ethernet ports.
I'll try to run some tests with flent to figure out what's happening. A constant latency of 20-30 ms isn't a big deal. The spikes which cause stuttering during a voice or video call are the real problem. The stuttering may not have been caused by these spikes.
It seems that these routers don't have enough power to do traffic shaping, NAT and to forward hundreds of mbps of data. It might be interesting to compare the idle latency with the latency under load. I've also considered running some tests with mac80211_hwsim. mac80211_hwsim may not provide the option to simulate a deep buffer like the ath10k one and may not be as relevant.