On Linux, it's possible to control which RAM-based sleep state computer prefers by setting `mem_sleep_default` kernel parameter. These parameters are often referred to as S-states. 
A full list of all S-states is as follows:

1. **S0** - Fully On (Normal operation)
2. **S0ix** - Modern Standby / Connected Standby (low-power idle state)
3. **S1** - Power on Suspend
4. **S2** - CPU powered off
5. **S3** - Suspend to RAM (also known as Sleep or Standby)
6. **S4** - Suspend to Disk (Hibernate)
7. **S5** - Soft Off (Shutdown, but still drawing some power)
8. **G3** - Mechanical Off (No power draw at all)

**S1** and **S2** are largely obsolete and not commonly used in modern systems. 

The deeper the sleep state, the more power is saved, but it may take longer to resume. 

The `mem_sleep_default` parameter is primarily designed to control the choice between different RAM-based sleep states.  

1. `s2idle` This corresponds to **S0ix** (Modern Standby)
2. `shallow` This is an intermediate state between s2idle and deep
3. `deep` This corresponds to **S3** (Suspend to RAM)

Using **deep sleep** can potentially lead to more power savings, and most likely a preferred option on laptops or other battery-powered devices. s2idle is another popular choice, but doesn't have great hardware support. Support for **s2idle** could be checked with a [following python script](https://gitlab.freedesktop.org/drm/amd/-/blob/master/scripts/amd_s2idle.py).

While **S3** and **S0ix** keep the system in a low-power state with some components still powered, **S4** saves the entire system state to disk and then powers off the system completely. **S4** often results in maximum power savings at the cost of longer resume times compared to other sleep states, but could not be configured as option for `mem_sleep_default`.

My laptop supports **S0ix (s2idle)**, but in practice,laptop battery lasts significantly longer with a closed lid in **s3 (deep)** state. In case of power button is pushed, it's better to go into **S5 (hibernate)** state. It's great that that there is ability to tweak that in Linux!