what about wired? If both wired and wifi suffer the same speed loss, perhaps either your settings are misconfigured, or your router simply can't handle what you're trying to make it do - adding info like, what router you're using, and even what version of OpenWRT may help answer you
Well, the router should handle it - though having quad cores doesn't mean they're being used to their full potential
Anyway, if you're comfortable using ssh - install htop and monitor the CPU usage during the speed test (you could also install luci-app-ttyd instead of using ssh - never used it, so not sure how good it is)
It's very hard to give advice without knowing your (router-)hardware. SQM is quite CPU intensive and doing traffic shaping at 300 MBit/s (what else, PPPoE?, VPN?, etc.) is very demanding, most routers typically used with OpenWrt would fail miserably under these conditions (aside from mvebu, RPi4, x86_64, maybe sunxi and rockchip).
I'm not following you here. Where did you see that ipq4019 can only handle max 360Mpbs? My primary WIFI network is on the 5ghz Qualcomm Atheros IPQ4019 802.11nac, which can support up to 867Mbps. It was on this network that I ran the wireless speed tests and I see a drop from appx 250Mbps with SQM off, vs 70-90 Mbps with SQM on.
I also have a WPA2 network enabled on the the 2.4ghz Qualcomm Atheros IPQ4019 802.11bgn which supports up to 400Mbps and I only use this for my laptop that can't connect to a WPA3 network, so I use this for WPA2 only.
Couple of notes, when using htop, it's good to go into the display settings (F2?) and enable the more detailed info in the bargraphs. This makes SIRQ (in purple) show up well, and that's usually where your CPU hits the wall, vs raw CPU usage.
Second, since you are on 21.02.0, there is a new feature available, Packet Steering, in Luci. Network - Interfaces - Global network options. This helps a lot on my x86, RPi4 users also report it helpful. Cake will always be on one core, but this can spread the rest of the networking load around and keep one from maxing out sooner. Try it out, either instead of or with irqbalance.