Saving the session before you power off the device is also known as hibernation. The basic steps for setting this up are here: Power management/Suspend and hibernate - ArchWiki
It looks like you already have an adequate swap device set up for this, so you are off to a good start. Set a “resume=UUID=” kernel parameter in your Grub config that points to this device.
You will also need to set up a dracut config with the correct modules, and then rebuild the initramfs for each kernel that you use.
This person’s post is a good example for how to set this up correctly:
See here they have set the kernel parameter for their resume device:
Don’t forget to regenerate the Grub configuration file after you set this up.
sudo update-grub
Here is where they have set up the necessary dracut config to add the hibernation modules:
After setting up this config, you must regenerate the initramfs:
sudo dracut-rebuild
After that you should be able to hibernate, which will save your session and keep your windows open when you shut down your computer.