yeah your settings look like same as mine. i'm not sure if there is a particular credential that vodafone are detecting for their router that makes it full bandwidth. weirdly when i spoke to them earlier in the year about some speed issues, they where able to identify the serial number of the supplied router and also do a remote update so ames me wondering if theres something in the background.
i heard about the single core issue with freebsd but when looking this up, it's seems to show that this was resolved recently. i may give open wrt a try just to rule it out though.
From a 'functional' point of view, the issue is down to the Intel NIC hardware.
Basically, when a packet arrives on the RX ring (inbound into the network port / downstream or download), each packet is assigned to a queue based on a hashing algorithm. The problem with PPPoE is there isn't an 'entropy' factor the NIC can use to assign it across multiple queues (because it can't look further in the packet, it's just a PPP encapsulated ethernet frame), so the traffic always ends up in a single queue and can only be processed by a single core by default for all the actions (enqueue, decapsulation, NAT, routing lookup etc).
There are tweaks like setting net.isr.dispatch to deferred, along with net.isr.bindthreads and net.isr.maxthreads which don't fix the problem with the IGB NIC hashing mechanism but instead change the allow that single queue and actions to be processed by multiple cores/threads, rather than a single core.
I did a little lab testing with PFsense Plus and a Vyos router running a PPPOE server to see what sort of throughput i could get, both were running on the same Proxmox box with 4 vCPUs to PFSense and 2 vCPUs to Vyos (i7-10700K) connected over virtio interfaces. With basic iperf3 testing, I managed about 3.26Gbps bi-dir before I started seeing significant loss, so it does improve things.
The long and short is though, that modern intel NICs lack the ability by default to balance inbound PPPOE to multiple RX queues, whos interrupts are generally by default configured to be processed by multiple processors, if you move over to a BCM5719 NIC or an older Intel NIC, you'll get around the problem.
Also, if you're running a CPU with hyperthreading, make sure you disable it. It hurts more than it helps.