ReadonlykeyReadonlyfenceReadonlypreviousReplica that held the previous turn of this key, null when unknown (first turn,
or the key's history expired). When it is not this replica, any in-memory state
this replica kept for the key (a waiting conversation) may be stale.
ReadonlysignalAborts (with a LeaseLostError reason) when the turn is lost before release.
Throws LeaseLostError when the turn was lost (cheap local check).
Hand the key to the next ticket (idempotent).
A granted per-key turn. The holder may run the key's work until release or until signal aborts.