System does not hibernate at critical battery level

The issue you linked was resolved a few years ago, in Powerdevil version 5.17 (I believe the current version is 5.26).

If you are trying to use the systemd-suspend-then-hibernate.service, I think your issue may be with configuration.

According to this, SuspendMode should be uncommented and a value specified:

systemd-suspend-then-hibernate.service(8) uses the value of SuspendMode= when suspending and the value of HibernateMode= when hibernating.

If you are not sure what to put (the documentation for this service doesn’t exactly hold your hand) I believe it can just be SuspendMode=Suspend.

Have you tried running the command from the thread you linked to see what inhibitors are listed for your system? Paste them into the thread so we can take a look.

systemd-inhibit --list