Boot time will be the setup of shadow page tables and other hypervisor structures at new offsets. Plus a few tricks to avoid reproducible RNGs.
You can't do that easily as devices can be attached, detached or reattached dynamically whilst the VM is running and when it is shut down.
In lieu of the hardware / VM support for device trees, with the existing design, the kernel has to probe each device upon every boot.
Applicability is limited, but works well to spin up serverless compute on-demand.
The UEFI option should work fine with pretty much any OS the hardware should be able to boot.
This is how GraalVM and OpenJ9 achieve instant startup of Java programs.
EDIT: at least linux seems to be capable of doing that: https://www.systutorials.com/docs/linux/man/9-crypto_rng_res...