The only option I can think of would be to use a vm. Unless all your apps support restoring sessions, I don’t think there’s any mechanism to do so globally. Getting stuff to start automatically or as a group using a script is easy enough, but that’s less than half your problem as you’ve described it.