I'm currently trying to solve this and more in an application called Cleave.
Cleave lets users persist OS state as a "context" - saving and loading open applications, their windows (and their positions), tabs, open files/documents and so on. Think of it as a workspace or project manager from an IDE, but on the OS-level.
I started working on it because of frequent multitasking of heavy work with limited resources; Made it because I wanted to switch between studying, working, reading, looking for an apartment, etc. without manually managing all states or consuming all resources.
I'll release an Open Beta (macOS) as soon as I finish license verification and delta updates, but I keep getting sidetracked...