I've actully did more test this morning and i'm getting full 100mbs over vpn (with the isolated cpu). There is probably less traffic on a sunday morning. Also i think i might be connected to a better server.
when you run your speed test make sure it uses a different core than the openvpn:
taskset -c 0 python3 speedtest.py
root@renegade:/mnt/data# taskset -c 0 python3 speedtest.py
Retrieving speedtest.net configuration...
Testing from Amanah Tech (104.254.93.181)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Ookla (Toronto, ON) [2.60 km]: 62.424 ms
Testing download speed................................................................................
Download: 95.08 Mbit/s
Testing upload speed......................................................................................................
Upload: 10.55 Mbit/s
Another option to prevent anything from being scheduled on your openvpn core is to modify the /boot/boot.cmd and add isolcpus=2 to the bootargs (you will still need the CPUAffinity setting in the systemd openvpn.services file to run it on core 2):
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} panic=10 consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs} isolcpus=2"
Then run:
mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
and reboot.
Let us know what speeds you get from wireguard, i wish my provider supported it, but you shouldn't have to do any of this crap to get full speed with wireguard.