Following on from the AUR (https://aur.archlinux.org/packages/systemd-lock-handler#comment-905553), logs now look like:
Apr 23 00:10:05 systemd-lock-handler[1764]: main.go:160: Running for user: ojf
Apr 23 00:10:05 systemd-lock-handler[1764]: main.go:84: Listening for sleep events...
Apr 23 00:10:05 systemd-lock-handler[1764]: main.go:150: Listening for lock events...
Apr 23 00:10:05 systemd-lock-handler[1764]: main.go:165: Initialization complete.
Apr 23 00:10:05 systemd-lock-handler[1764]: main.go:70: Got lock on sleep inhibitor
Apr 23 00:10:05 systemd[1745]: Starting Logind lock event to systemd target translation...
Apr 23 00:10:05 systemd[1745]: Started Logind lock event to systemd target translation.
Apr 23 00:23:13 systemd-lock-handler[1764]: main.go:72: The system is going to sleep
Apr 23 00:23:13 systemd-lock-handler[1764]: main.go:32: Started systemd unit: sleep.target
Apr 23 00:23:13 systemd-lock-handler[1764]: main.go:68: Failed to grab sleep inhibitor lock The operation inhibition has been requested for is already running
Apr 23 00:23:13 systemd[1745]: systemd-lock-handler.service: Main process exited, code=exited, status=1/FAILURE
Apr 23 00:23:13 systemd[1745]: systemd-lock-handler.service: Failed with result 'exit-code'.
Apr 30 12:47:31 systemd[1745]: Starting Logind lock event to systemd target translation...
Apr 30 12:47:31 systemd-lock-handler[204303]: main.go:160: Running for user: ojf
Apr 30 12:47:31 systemd-lock-handler[204303]: main.go:84: Listening for sleep events...
Apr 30 12:47:31 systemd-lock-handler[204303]: main.go:150: Listening for lock events...
Apr 30 12:47:31 systemd-lock-handler[204303]: main.go:165: Initialization complete.
Apr 30 12:47:31 systemd[1745]: Started Logind lock event to systemd target translation.
Apr 30 12:47:31 systemd-lock-handler[204303]: main.go:70: Got lock on sleep inhibitor
Apr 30 15:44:36 systemd-lock-handler[204303]: main.go:72: The system is going to sleep
Apr 30 15:44:36 systemd-lock-handler[204303]: main.go:32: Started systemd unit: sleep.target
Apr 30 15:44:36 systemd-lock-handler[204303]: main.go:68: Failed to grab sleep inhibitor lock The operation inhibition has been requested for is already running
Apr 30 15:44:36 systemd[1745]: systemd-lock-handler.service: Main process exited, code=exited, status=1/FAILURE
Apr 30 15:44:36 systemd[1745]: systemd-lock-handler.service: Failed with result 'exit-code'.
I think it sometimes (but certainly not always) does lock on a manual systemctl suspend
(or hibernate etc.) - but afaict it's never locking on idle, and prevents sleep due to its failure.
I think this is the issue that was fixed in https://git.sr.ht/~whynothugo/systemd-lock-handler/commit/cb3f544ef4f2730a27adcfebe0df7556dfeb01bd
I've tagged a new release that includes that fix.