Can you save a work session and reopen it later?
For what you are asking, using the sleep image might be the best way.

Creating a little script one could do that with Sleep Image.

First you would imitate the sleep that would create a image of your current state.

pmset sleepnow


or

osascript -e 'tell application "System Events" to sleep'


Next you would copy/rename the sleep image file so you can use it later.

They are located in the /private/var/vm/sleepimage

Be aware the sleep image files can be large in Gigabyte size, so make sure you have enough disk space.