Note that the Zigbee gateway applications will interact with each other in any way at the Zigbee level. It will be just like if you buy two commercial Zigbee gateway/hub/bridge appliances from different manufacturers, other than them maybe interfering a little with each other by transmitting on the same frequency range they should all work fine by themselves in their own sandbox.
So, you can have as many Zigbee Coordinator radio adapters to a single computer as you like, they can just not be connected by the same application. Many people here run ZHA and Zigbee2MQTT in the same operating-system, and even multiple instances of Zigbee2MQTT in the same operating-system.
All applications just need to be connected to their own Zigbee Coordinator radio adapter and those need to be kept away from each other, preferably by using very long USB extension cables to a powered USB 2.0 hub. Again, highly recommoment that you read all of this before taking the next step → Zigbee networks: how to guide for avoiding interference and optimize for getting better range + coverage
+1 Virtualization with layer on top of layer, etc. should not be an issue as long as the computer that you run have the resources. I would however not personally recommend running a virtual machine in Virtualbox on top of Windows client OS on client computer if that VM is supposed to be in “production”.
Check out these statistics from Home Assistant Analytics → https://analytics.home-assistant.io/
I believe that most people who run Home Assistant OS in a virtual machine at home for “production” probably either run it on an always-on NAS that comes with a built-in virtualization hypervisor / virtual machine manager or a dedicated home-built server running a Debian-based Linux OS distribution (to be HAOS supported).