Bazzite (immuatable) or Nobara (mutable) if you want something Fedora based. Both are great.
You absolutely can use VMs, but you don't need a VM to run windows software and you won't have a good experience if you try. Steam/Proton or Heroic/Proton handle basically all non-native games (sometimes better than the native version, sometimes better than Windows itself honestly). Wine/Bottles handles Windows applications. They just work. A VM is an additional layer of complexity and slowdown and missing features that will mess everything up.
Honestly the biggest headache is with the "linux native" stuff. It remains and exhausting and unclear figuring out whether I should use a system repository package (when available), flatpak, AppImage, snap, manually download a system package designed for the upstream distro, run it as a docker, or just unzip a raw tar.gz and build it myself. Because they're all subtly different, provide access to different versions, behave in different ways, update in different ways (or not at all) and each method has certain applications where it makes the most sense. It ends up being a huge cognitive burden of inconsistency. Some work is done to streamline it but it's far from transparent to the user. Maybe I've overthinking it but in my opinion it's a quick way to turn your system into a mess where you don't know what is installed where and how and why, having things installed in multiple ways and different places.
Part of the transition from a democratic government to an oppressive regime requires filling the military and police with only your supporters and thugs. This is all part of the plan.