Nice, narrowing it down!
Next thing I would check is your configured DNS servers on the desktop, it needs to have only the pihole IP, if it has any other servers configured that is likely the issue.
Also worth pinging the pihole IP next time it’s not working, to check if it’s actually a networking issue instead of a DNS issue.
Newer hardware that has lower idle consumption mostly. I’ve found there’s not much to do on a typical setup as far as software optimization, as most OS’s are already set up for pretty low power usage while idle.
HDD sleep can work if you don’t have anything accessing the drives, but with all the stuff running on my server there’s basically always some kind of activity going on so they never sleep. Less HDDs is the answer for me, I just have 2 large drives in a ZFS mirror.
My HP box with an i5-7500 idles around 15-20W which is decently low, but I also have 2 PCs with i3-7100u mobile chips that idle at 1-2W with 32GB of RAM and an NVMe SSD, which is wild.
Avoiding enterprise gear is key, it’s extremely power hungry.
So I would start with checking if the request is reaching PiHole.
Next time it breaks, before restarting networkmanager, go check the pihole requests log and see if your DNS queries are even showing up there.
If they are, what does pihole show it’s returning for the query, is it the correct IP?
If that’s working properly then I would check if you can ping the server by IP directly, make sure that connection is working.
Plex: requires external account to use their self hosted software.
Also Plex: oops lol
I have a single container for docker that runs 95% of services, and a few other containers and VMs for things that aren't docker, or are windows/osx.
ext4 is the simple easy option, I tend to pick that on systems with lower amounts of RAM since ZFS does need some RAM for itself.
I do have an external USB HDD for backups to be stored on.