On linux you can create a network namespace exposing only the wireguard network device, so that applications in that namespace cannot leak traffic. Setting this up, however, is quite fiddly in my experience.
https://github.com/VTimofeenko/wireguard-namespace-service/b...
Plus it gives you a psychological separation between "VPN related activities" and not. Or you just do everything in the VM. Adds a layer security wise as well to protect your physical system.
If you wanted to get really fancy you could have a few different VM's and each one on a different companies VPN