Lost in debugging process - ping "cascades" with multiple apple clients

On a previously known-to-working AP with openwrt built from trunk in late September, we started seeing connection issues with a few clients.
The connection appears to "freeze" on the client side.

Here's an excerpt from ping's output:

64 bytes from 192.168.3.1: icmp_seq=4 ttl=64 time=2347.642 ms
64 bytes from 192.168.3.1: icmp_seq=5 ttl=64 time=1347.545 ms
64 bytes from 192.168.3.1: icmp_seq=6 ttl=64 time=345.336 ms
64 bytes from 192.168.3.1: icmp_seq=7 ttl=64 time=2120.560 ms
64 bytes from 192.168.3.1: icmp_seq=8 ttl=64 time=1117.109 ms
64 bytes from 192.168.3.1: icmp_seq=9 ttl=64 time=112.861 ms
64 bytes from 192.168.3.1: icmp_seq=10 ttl=64 time=13.704 ms
64 bytes from 192.168.3.1: icmp_seq=11 ttl=64 time=25.534 ms
64 bytes from 192.168.3.1: icmp_seq=12 ttl=64 time=30.433 ms
64 bytes from 192.168.3.1: icmp_seq=13 ttl=64 time=8.212 ms

However, everything looks normal on the AP (decrypted tcpdump from monitor interface):

Noise is -105dBm (as per iw survey dump) and there's no airtime problem (iw station dump) [1].
To me, this looks as if the client is causing the delay.
We tested using two different macbooks and an iphone.

I wasn't able to reproduce that behaviour with my linux/lenovo laptop, android phone, or an older iphone (iOS 15.1) on an AP of the exact same type.

The problem got a bit better after restarting the AP.

What's the next step?
Is there a way that that sort of delay can happen between handing the data to the driver and the transmission?
Is it worth using third device for monitoring to make sure there's no unusual delay before the wifi chip actually transmits the data?
Wireshark on the macbook?

[1]

Station a4:5e:60:d2:d6:c5 (on nw5_0-1)
        inactive time:  80 ms
        rx bytes:       5804668
        rx packets:     30135
        tx bytes:       58326289
        tx packets:     42522
        tx retries:     881
        tx failed:      9
        rx drop misc:   1
        signal:         -68 [-68, -71, -98, -98] dBm
        signal avg:     -67 [-67, -70, -97, -97] dBm
        tx bitrate:     585.1 MBit/s VHT-MCS 6 80MHz short GI VHT-NSS 2
        tx duration:    1512052 us
        rx bitrate:     24.0 MBit/s
        rx duration:    1660124 us
        airtime weight: 256
        authorized:     yes
        authenticated:  yes
        associated:     yes
        preamble:       long
        WMM/WME:        yes
        MFP:            no
        TDLS peer:      no
        DTIM period:    2
        beacon interval:100
        short slot time:yes
        connected time: 389 seconds
        associated at [boottime]:       804872.989s
        associated at:  18446725625939099384 ms
        current time:   18446744071878302679 ms
Station b8:e8:56:30:95:0e (on nw5_0-1)
        inactive time:  0 ms
        rx bytes:       1378529909
        rx packets:     1097255