https://fly.io/blog/sandboxing-and-workload-isolation/
Two useful links from my Pinboard research for that post:
A person at Red Hat optimizing QEMU boot time:
http://oirase.annexia.org/tmp/paper.pdf
An Intel deck talking about qemu-lite:
http://events17.linuxfoundation.org/sites/events/files/slide...
(The other thing to follow up on if you're interested in the background on this stuff is kvmtool).
In both cases, a big part of the answer seems to be eliminating BIOS overhead; getting rid of oproms appears to have been the single biggest win for Intel. But the Red Hat article also finds lots of overhead in QEMU itself, and both pieces talk about kernel config issues (for instance, scrubbing the kernel you boot of subsystems that have expensive initcalls).
By comparison: Firecracker is purpose-built in Rust for this one task, provides no BIOS, and offers only network, block, keyboard, and serial device support --- with tiny drivers (the serial support is less than 300 lines of code).