How feasible would it be to get the following features from your virtual machines?
* Ability to make a "save state" of RAM and load it to return to a previous state
* Ability to save a "recording" of input, which you can send to another user, and they can use it to watch exactly what you did

I'm thinking in terms of designing tool-assisted speedruns for games (see http://tasvideos.org/)