Unfortunately, even in S3 sleep, the battery would drain in a day.
I am now back to a MacBook Air (M1) and sleep works perfectly. Life is to short to deal with the terrible state of sleep on Windows/Linux laptops.
I have a Ryzen ThinkPad p14s with Linux. What you do is turn on S3 mode (they call it "Linux") in BIOS as you did. Then in /etc/systemd/sleep.conf you enable AllowSuspendThenHibernate. You can adjust the time. I have mine set to 30 minutes. I also have suspend set when the laptop lid closes. Which means when I close the laptop, it suspends for 30 minutes. If I open before 30 minutes, it resumes right away. If not, it hibernates. The battery will last for practically days if you configure it this way.
You have to configure Linux to hibernate and this will depend on your setup. Just know that it is possible to use LUKS encryption and hibernate to a file (or partition).
Another factor with my Macbook is that it seems to automatically resume from hibernate in the morning. Not sure what it's doing. Maybe it's keeping track of when I typically open my laptop. But you can get this same behavior on Linux with rtcwake. If using LUKS though, you'll probably need to use a keyfile rather than a passphrase for this to work. It would be neat if someone wrote a program that could monitor the time you open the laptop and automatically adjust the rtc wakeup times based on historical data.
Actually, as far as I understand it's a mixture like modern sleep in Windows. Like modern sleep, the system also wakes up to fetch e-mail, calendar events, etc. But in contrast to Windows, it actually works well and is very restrictive (only certain whitelisted apps can update). Apple calls it Power Nap:
https://support.apple.com/guide/mac-help/what-is-power-nap-m...
Which means when I close the laptop, it suspends for 30 minutes. If I open before 30 minutes, it resumes right away. If not, it hibernates. The battery will last for practically days if you configure it this way
I know, but hibernate on Linux has many issues. First of all, properly restoring hardware state is even more of a hit and miss than S3 sleep (where e.g. the trackpad would often not come up correctly).
Hibernate on Linux also has all kinds of security issues. Hibernate currently does not work with Secure Boot + kernel_lockdown [1]. Hibernate with randomly-keyed encrypted swap requires all kinds of workarounds.
I am not willing to forgo security mechanisms that have been supported for some time on other systems.
It doesn't have anything to do with the processor does it? Surely neither intel nor amd have removed S3 support?
AFAIK it's integrators (motivated by Microsoft's push of "modern standby"?) which make it unavailable in their bioses: S3 needs bios integration, modern standby is just S0. Or do you mean "hopefully AMD will have a better S0 idle"?