Can you save a work session and reopen it later? Imagine you are working on a book, for which you need 5 precise internet tabs/pages to be open at the same time, Apple Pages, Dictionary, and, I don't know, a classical music CD in iTunes that inspires you.
And on the same day, you will also work on your finances and accounting, for which you will need Numbers, Calculator and three tabs open in a browser.
And you're also helping your kids put together a video for their school, so whenever you work on it, you need to have Final Cut Pro X, the TextEdit file corresponding to the project, and 4 images/visual resources opened in Preview.

These are tasks that might take a week or two to get done. So every time you're going to get to work on one of them, you're going to have to spend a long time finding the right documents, source files, and recreating the work environment that you need to be ready to work. And if you are interrupted, or wish to shut down your computer or close the task at hand, you'll have to go save and close in every application.

My question is, does anyone know of a way to simplify opening and closing all the files related to long term projects? Obviously no one turns on their computer to write a novel from A to Z. And no one does "just one thing" on a computer as well. Maybe there is an app that exists that launches a very precise work environment for you? 

"Spaces" is good, but what I'm talking about would be a way to save every little setting within a space, and be able to close or reopen or name them (and Spaces has been replaced by Mission Control anyways).

The only way I think someone could do this is by creating aliases of the files related to one task, then select all aliases and reopen them each time (might not work for browser tabs?)

Let me know I would love an answer to this, as I often work on several long term projects in the same year and need to take breaks, or turn off and on my computer often.
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.