Could be done with one hot button. We need a standard format for files that contain a complete memory image. In the case of Linux, this would mean that the shutdown command sends a special signal to the kernel, which would cause the kernel to flush the buffers and then save the memory state to disk. The memory image filenames for the various OS's would be given to lilo in the lilo.conf file, and lilo decides at boot time whether to do an ordinary boring boot or to slurp in the memory image. Same goes for loadlin.
Some hardware needs to be initialized.