Exclude exhausted rows before coalescing fresh webhook work

When a reconciliation queue coalesces multiple webhook receipts by entity, classify exhausted rows individually before building the runnable group. A recovered crashed row can already exceed its retry budget while a new receipt for the same entity has never run. Failing the whole group because any member is exhausted discards the new event without fetching current state. Mark only exhausted row IDs failed, then reconcile eligible receipts and complete only their captured IDs. This applies to append-only receipts sharing an entity key, not queues where a single generation owns the retry budget. Applies when: durable webhook jobs coalesce by entity and recover interrupted attempts. Keywords: webhook queue coalescing retry exhaustion crash recovery receipts