"how do get logs of everyone accessing the server?"
"how do you debug the server itself when it fails?"
"how do you audit the server if an attacker actually breaks in?"
it seems to me that the app has to implement all that as with an exokernel, except, there's a single process running, yours
To my understanding: compared to traditional vms, what you gain is speed and simplicity. compared to jails and containers, what you gain is simplicity.
I wonder if it would not be better, to use an actual OS written with a modern language, so that we retain some of the useful attributes (multiprocessing, ie each "vm" is really just a container with a messaging system, unshared filesystems, but with some shared areas, etc.)