claimQueuedPacket
Atomically claims one stable packet row for sending. A returned QUEUED packet means this call performed the QUEUED -> ENROUTE transition and owns the send; any other returned status means another path already handled it.
A packet whose conversation was archived while it sat in the queue is never claimed. Its stored channel index still points at the slot it was composed for, and something else occupies that slot now, so sending it would put the message on a channel the user never chose. This runs in the same transaction as the status transition, which is what makes the check hold against a reconciliation landing mid-send.