Thanks jeffsf. I installed htop and it’s clear that I’m not CPU-bound.

Here’s the output of iw dev:

inactive time:  0 ms
rx bytes:       101247804
rx packets:     151968
tx bytes:       179021139
tx packets:     199179
tx retries:     0
tx failed:      10
rx drop misc:   53
signal:         -55 [-55, -73] dBm
signal avg:     -54 [-54, -73] dBm
tx bitrate:     6.0 MBit/s
rx bitrate:     390.0 MBit/s VHT-MCS 8 80MHz short GI VHT-NSS 1
rx duration:    10811168 us
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: 3737 seconds