Windows lets you hibernate the entire machine, but why can't
it hibernate just one process? Record the state of the process
and then resume it later.
Because there is state in the system that is not part of the process.
For example, suppose your program has taken a mutex, and then it
gets process-hibernated. Oops, now that mutex is ...