One idea would be to try hibernate instead of suspend. It's much better in some ways, and works differently, so it may provide the behavior you want. If you'd like to try it, and need help, just ask.
Basically, hibernate copies everything that's in RAM to your swap partition, then shuts down the computer completely. Then when you turn the power back on, it restores the contents of RAM from the swap, and your session continues exactly where it was when you gave the command to hibernate.
I have a number of computers here that are all capable of hibernating. Even VMs. The only requirement is a swap partition large enough to hold whatever's in RAM. Every Solus edition already supports it.