Use ddns on your router with a domain so you can then get something like wireguard.example.com and then use that as the endpoint in your wireguard.
Set the wireguard DNS as your pihole.
To make life easier set your home network IP space to something that another WiFi would never use, ie 192.168.46.xx
That way it will never conflict if you are on a public WiFi and you can access anything on your home lab when you need.
I've been using this setup for years on laptop, phone etc
This is a deep sleep issue. A google search will show that many modern processors can't actually deep sleep (S3) and therefore the only option is to hibernate or shut it off.
To find out if you can, sleep the computer, wake it up then run:
journalctl | grep S3
There should be a line about what type of sleep is available and another line about what type of sleep your computer was just in.
If S3 is not listed as an available sleep mode you might get lucky and be able to turn it on in the bios. If you can't then you are out of luck.
Since I use fedora atomic, I used this to turn on deep sleep:
rpm-ostree kargs --append="mem_sleep_default=deep"
On non atomic I forget exactly how but I think this is the way: https://unix.stackexchange.com/questions/720514/cannot-write-into-sys-power-mem-sleep-in-fedora-36