Hi,
In passing I noticed that lwlock.c contains 3 comments about bogus
wakeups due to sharing proc->sem with the heavyweight lock manager and
ProcWaitForSignal. Commit 6753333f55e (9.5) switched those things
from proc->sem to proc->procLatch. ProcArrayGroupClearXid() and
TransactionGroupUpdateXidStatus() also use proc->sem though, and I
haven't studied how those might overlap with with LWLockWait(), so I'm
not sure what change to suggest.