This sounds interesting. Know of any unusually good guides/resources for this?
https://nixos.org/wiki/QEMU_guest_with_VGA_passthrough
https://www.reddit.com/r/unRAID
https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVM...
I'd recommend going with NixOS and libvirt, but other communities such as around unRAID or Arch might be bigger.
https://gist.github.com/xaduha/226ff1b991bd54db09ff0bbd1df79...
snapshot=on option allows me to discard changes to the image with every launch, folders like Desktop, Downloads, etc are not part of the image.
When I do need to keep the changes I use a commit command, not mucking with actual snapshots anymore.
$ virsh qemu-monitor-command MAIN --hmp commit all
As for macOS VM, I haven't used one recently, but it's totally possible.