Figuring out which program prevents sleeping is the easy part - there are tools that show that, and you can also usually just brute force it by killing programs one by one.
Then comes figuring out why a system claims to be sleeping but isn't (e.g. the fan is still spinning). Usually this is because of the Modern Standby/S0 crap and in many cases there isn't a solution because the BIOS removed support for S3.
The other class of issue is after sleeping the system won't wake up, or wake up randomly, or wake up with random glitchy graphics/sounds/etc.
Sleep is easily Windows's most bug-ridden area.
The main benefit of Linux, though, even though it's pretty clear it doesn't have the best support for suspend/resume, is that it won't yield the resume function against you to force you to run Windows Update and yeet all of the stuff you've been working on overnight or light your bag on fire. You'll still have to get hardware that works well, but that's it. And.. and hope the AMD driver doesn't break suspend again. I actually do like running Linux, even if it might be hard to tell sometimes :)
Nothing saves more energy than turning it all the way off, this used to be a no-brainer. Sure makes laptop batteries last years longer.
Plus the failure to perfect partially-powered states over the decades doesn't have to have an impact.
Also, modern windows won't let you select S3 sleep if it detects support for S0. There used to be a simple registry edits you could do but Microsoft seem to have closed that loophole.
I chose my current laptop because in the BIOS it has a sleep setting, and if you pick the oddly named "Linux sleep" it disables S0 sleep. Thereby allowing S3 sleep in Windows.
This is after having a previous laptop act like a heater to my lunch in my bag, or being dead despite being full charged after waking up overnight and running hard till the battery ran out. Or perhaps the most obnoxious, my wife closing her laptop with a video running and at 3am her laptop bringing itself to life waking us up.
Why? I mean, what incentive does MS have to say "people are still trying to use the non-buggy sleep that doesn't cause fires, let's close the loophole to force using the buggy sleep"?
Quote from, and more info about Modern Standby, here: https://learn.microsoft.com/en-us/windows-hardware/design/de...
S3 is considered “legacy”: https://learn.microsoft.com/en-us/windows-hardware/design/de...
The main motivation for Modern Standby was to enable instant wakeup and push notification-like functionality during standby, like smartphones. That’s not possible with the traditional sleep modes. Unfortunately it doesn’t work as seamlessly as one would like.
Note that I use Linux and a less-than-a-year-old thinkpad that has traditional standby, but I'd like to know what the inevitable that's coming is
not so, because of.
Other is that the slightest mouse movement wakes the computer. Disabling wake devices does not work anymore. Guides say disable it in your bios. If there is a configuration option... I don't have (neither on a Lenovo, nor on a Beelink) such option. (Yes, I did the powercfg -wake-armed/device manager rain-dance, to no avail, it worked reliably to configure wake sources on S3)
S3 sleep was good enough for me, and S0 is a large step back in reliability and usability, for no perceived benefit. Unfortunately my newer machine does not support S3 anymore.
With MS copying all the bad ideas from MacOS it is getting ever worse, slowly Windows (being my get stuff done desktop) becoming as unusable my Mac. (ps. I'm was a long time, 10+ years, Linux desktop user, but constant flux of the platform made me move away)
However, the "trick" to disabling mouse wake-up for me has been to go into Device Manager and disallow the individual mouse from waking the machine up. It's annoying because I'd still like to have it wake up on button press but it extends the battery significantly. Even on desktop, it's useful to keep the system asleep and not spinning up the hard drive and waking the monitor pointlessly in the middle of the night.
My Mac (M1 Air) does this a bit better indeed, but I hear colleagues also cursing it for heating up in the backpack, and such (M2 CPU). Still I think most of the copied stuff made windows worse (lots of UI/UX stepbacks also).
The last company where we used Windows, we'd all walk around from conference room to conference room carrying our laptops opened up, because nobody was sure they would work again without a hard reboot if you closed the lid.
Untying the sleep state to the lid can still be the advantage even if the full power state takes it place.
It's infuriating.
No guarantees but that's what I would do before expecting great progress otherwise.
The theory is that Windows is lying awake at night wondering if their old familiar accomplice is going to ever be seen again or not ;)
I had kept thinking my cat had gotten onto my desk and stepped on the keyboard or moved the mouse around - security camera showed that to not be the case.
On my laptop, this led me to discover that my Qualcomm X55 WAN is a real standby drain and that my Lenovo Thunderbolt dock really likes to disable its sleep mode after some big Windows updates, leading to a standby drain after the first time I plugged it in. I'm still surprised how many pitfalls there are with standby, even on Windows.
On the other hand, on Linux, I have found that if I have YouTube fullscreen'd in Firefox, it's a crapshoot whether or not KDE Plasma will decide it's OK to sleep after the video ends. Not a big deal, but rather amusing nonetheless.
I now avoid leaving my MacBook unplugged overnight because I fear the battery draining to zero will cause it damage. This has happened a number of times when I've had some heavy Safari pages open when closing the lid. Some other process wakes the OS and now Safari stars chewing up power.
I tried systematically dealing with each cause and eliminated most of them but am still plagued by a few issues including some mDNSResponder stuff that is ungoogleable.
Nothing that the Macbook has done while "helpfully" waking from sleep has EVER provided any value to me while on multiple occasions, it has caused issue by draining the battery - which, long term, is actually damaging to the hardware. I wish I could have the old MacOS Sleep behavior back.