Check the logs, is it waking, sleeping, waking, sleeping, waking, sleeping? Power management bugs are super annoying because they are tedious to dig into.
In my very obscure case, I got lucky in that suspend was working, then stopped working after a kernel update. Since it was a regression, kernel developers were more interested in tracking down the problem and I was able to find a work around: write PWRB to /proc/acpi/wakeup
The gory details are here, which I expect is so obscure it's not your problem, but shows as tedious as it is, filing bugs with a decently good bug report and willingness to do the work devs need you to do can be worth it.
https://bugzilla.kernel.org/show_bug.cgi?id=185521
I honestly tried my best to debug it. I installed different tools, and at some point it seemed to work, but after some time, due to some updates, it broke down. Some time after this, I just stopped using sleep mode. It was easier to turn on/off the whole machine.
XPS13 which I have is one of the most widely used linux laptops, and it a symptomatic that it doesn't work well.
my xps 13 has no problem going to sleep. It just wakes up slow and drunk sometimes. My "workaround" is to put it into 'performance mode' which kills the battery.
In my very obscure case, I got lucky in that suspend was working, then stopped working after a kernel update. Since it was a regression, kernel developers were more interested in tracking down the problem and I was able to find a work around: write PWRB to /proc/acpi/wakeup
The gory details are here, which I expect is so obscure it's not your problem, but shows as tedious as it is, filing bugs with a decently good bug report and willingness to do the work devs need you to do can be worth it. https://bugzilla.kernel.org/show_bug.cgi?id=185521