I finally got around to making suspend work correctly again on my Devuan Linux desktop. It is not very tricky, although it is slightly more complicated in my case because I use ZFS. These version numbers are probably not that important, but some people like it when you lead with them...
I've been an Nvidia user for a long time, and I used to also be a believer as much as I believe in anything. Not in a religous sense, but I just had faith in their products and that they would make good on them. Every time I tried AMD graphics (going back so far they were ATI graphics) I regretted it. But more recently I've gotten some low-end AMD hardware (a laptop and a MiniPC) because I heard that it was well-supported by the OSS driver. This turned out to be absolutely true, and I haven't had the slightest problem with either machine's integrated graphics.
Nvidia, on the other hand, seems to have only become more problematic with time. One thing which I've found to be something of a constant is that they tend to cause difficulties in the resuming from suspend department. More times than I can really remember, this has broken for me and I've fixed it, and then it's broken again and so on. My impression is that this is a tick tock between Nvidia first not keeping up with kernel revisions, and second eventually catching up.
Since my Linux is tainted by Nvidia, I might as well use ZFS. Installing Devuan excalibur with root on ZFS turned out to be similar to doing it with prior versions, only with different specific weird tricks. Install documentation notes the ZFS_INITRD_ADDITIONAL_DATASETS variable in the /etc/default/zfs config file. I chose to create a new filesystem to store my now apparently required nvidia-persistenced storage:
sudo zfs create rpool/var/persist
Now the relevant line in my /etc/default/zfs looks like this:
ZFS_INITRD_ADDITIONAL_DATASETS="rpool/var/persist rpool/var/spool"
There's just one more piece to this particular puzzle, some module load options.
$ cat /etc/modprobe.d/nvidia.conf
blacklist nouveau
options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/var/persistNow reboot and bob's your uncle, or mine at least, because this cured my latest bout of having trying to suspend cause the system to try real hard and then return to the login screen. I don't know that there's any reason to put these files on their own filesystem, but I did it anyway. It gets cleared out completely between suspend events.