I had (what I thought was) a similar problem. However, the issue wasn’t actually with the guest OS getting stuck on the Grub boot screen. My issue was with the guest VM auto-starting on boot.
I’m using libvirt/qemu on Linux. Even though I had set the guest to autostart
virsh autostart hass
…my issue was that libvirt itself was starting lazily when triggered by a systemd socket (e.g. when I manually logged in and ran a virsh command). I fixed it by enabling the virtqemud unit
systemctl enable virtqemud.service