I did a bit of looking around, and it seems there has been experiments around checkpoint and restore for the JVM.
Noteworthy seems to be this: Checkpointing Java from outside of Java | Red Hat Developer which appears actually usable in some circumstances.
It also appears that OpenJ9 is working on adding exactly that feature as part of their JVM: Everyone wants fast startup: introducing JVM snapshot+restore – Thoughts on Managed Runtimes – Dan Heidinga. Eclipse OpenJ9 project lead and JVM developer The project is tracked here: Snapshot+Restore · GitHub
It also look like on the OpenJDK front there are various people looking into this as well, it seems Amazon is looking into it even: Call for Discussion: New Project: CRaC
Finally it seems Azul’s embedded JVM already have such feature: Faster Startup For Embedded Java Applications: Azul Systems Inc.
One interesting thing all these bring up is that some things can’t be restored as easily, file handles and other acquired OS resources. Random seeds, precise clock timings, etc. And some things might need to not be saved as they can be a security risk, such as encryption keys. I wonder how Common Lisp deals with those?