Windows Software to Save Arbitrary Application State
Solution 1:
At the risk of being down-voted, I find I have to give a negative answer.
Many people would wish for this, including myself. I have also long searched for such a product, before I understood that it does not exist, and indeed cannot exist. Maybe limited implementations of suspend/unsuspend are possible, but not general ones.
Think for example about suspending an application that has an open file on the CD or an open Internet connection. Now imagine what it would take to "suspend" and "unsuspend" it: All files and connections to be saved on suspend, then on unsuspend to be re-created, CD drive maybe to be verified and file opened, Internet connections to be re-established with all login info into the site, etc etc.
This is just too complex to implement in any operating system, and would also be a security hole, bypassing the need for entering the login if an application's state was "captured" just after the login. To correctly suspend an application, one would just about need to save the state of the entire operating system (which does exist).
Solution 2:
Without virtualization, your only option on Microsoft Windows is pause/resume applications. The utilities which can do this are PySuspend and Pausep. This will not allow you to perform any sort of "undo".
While there are virtualization products such as QubesOS which can do what you're looking for Linux systems, you will not likely see this on Microsoft Windows without direct support from Microsoft. However, even with QubesOS, it should be possible to run a virtualization product like VirtualBox or VMWare Workstation to run Windows applications. You can also run Windows applications via wine, with full benefits of the QubesOS abstraction.
Alternatively, you could run multiple VMs running a separate copy of Windows underneath each of them. Some versions of MS Windows allow you to run one or more copies of the OS, virtualized, under a single license.