Hold exclusion until every sibling task settles

When a lock protects a batch of concurrent sibling tasks, do not release it on the first rejection. A fail-fast aggregate can reject while other siblings keep running, allowing the next invocation to overlap unfinished work. Capture the promises, await all settlement while the lock is held, then re-read or otherwise propagate the original failure semantics. Add a deferred-sibling test that proves the protected request cannot settle or release early after one sibling fails. This complements caller timeouts; it does not cancel external work or guarantee exactly-once effects.

Applies when: one exclusion lock spans multiple concurrently started operations. Keywords: advisory lock Promise all settled early release sibling failure overlap