Suspend is an industry-wide new problem affecting almost all new hardware since Windows convinced hardware makers to make S0 the default, and some don't even support S3 in their bios any more.
Google about "modern standby".
It's driven by a software change in Windows, but it affects Linux too because all mamufacturers made bios changes to support the Windows change.
The point I'm making is, Windows machines have the same problem for the last 2 or 3 years. Even macs have an essentially the same problem, just that on mac it's easy to change a setting to fix it.
It's not a Linux problem, and by that I do not just mean the usual that it's not Linux's fault that hardware manufacturers cater to Windows. I mean everything has the same problem right now, and the fix is to A: hope both your hardware has a bios that still provides support for S3 standby, B: use it.
Seperately, I personally have just never used standby or hibernate. It's true that aside from the current industry-wide issue caused by "modern standby", it's always been a bit of a problem on linux. Especially since I dual boot and also just never know how long the machine will be turned off or how much charge it will have when I close the lid, or rather I don't want to have to worry about it. So I just decided decades ago that the entire suspend and hibernate concept was a bad idea and I don't use them, on any platform. My machines shut down and boot up every time on battery. Plugged in they merely go idle and turn the monitors off. No swap or hiberfile even cpnfigured on linux or windows. Ever since ssd's booting from scratch has been fast enough. Standby and hibernate are just fundamentally not good ideas IMO. I don't care how popular and how they work 99% of the time. I opt out of that whole idea, on any platform.
And everything else works great.
My daily life on linux is all in all, less grief than Windows.