Oh some kernel params and other settings can help with that. These are mine, and it's been working great:
Kernel params
## Seems to be needed for suspend to S0 (s2idle) without hanging (only needed on p16s)
acpi_osi="Windows 2022"
# Prevent spurious wakeups from a firmware bug where the EC or SMU generates spurious "heartbeat" interrupts during sleep
acpi.ec_no_wakeup=1
# Prevents dock from waking up laptop right after suspend
usbcore.autosuspend=-1
Other settings (executed with a systemd service) (also only needed on p16s, not on my p14s) # Disable Thunderbolt PCIe root port wakeup (RP09)
echo disabled > /sys/devices/pci0000:00/0000:00:1d.0/power/wakeup || true
# Disable USB XHCI controller wakeup
echo disabled > /sys/devices/pci0000:00/0000:00:14.0/power/wakeup || true
# Disable ACPI wakeup for XHCI and RP09 (toggle if enabled)
grep -q "XHCI.*enabled" /proc/acpi/wakeup && echo XHCI > /proc/acpi/wakeup || true
grep -q "RP09.*enabled" /proc/acpi/wakeup && echo RP09 > /proc/acpi/wakeup || true