Our callout use of NOTIFY within a TRIGGER may be tangential to the root cause. What we wanted to call out is that neither the NOTIFY page or the https://www.postgresql.org/docs/16/explicit-locking.html page mention that NOTIFY uses an AccessExclusiveLock.
I don't see what this has to do with triggers. Even deferred triggers run *before* this notify lock is taken.
The only possibility I see for such a lock to be held for a long time is if COMMIT spends a long time waiting for a reply from a synchronous standby server. Is that your problem?
I don't think that would require special documentation, because if your synchronous standby does not respond in time, you normally have worse problems than NOTIFY performance.