requestRecoveryKeyReset
Requests a delayed reset of the requester's user's recovery key in one atomic step. In this order:
the user has no ACTIVE recovery key (never registered, or revoked): RecoveryKeyResetRequestResult.NotConfigured;
the requester's registration differs from RecoveryKeyResetRequest.requester (key and epoch): RecoveryKeyResetRequestResult.Conflict;
a reset is pending: RecoveryKeyResetRequestResult.Existing with it, unchanged (whoever requested it; the delay never restarts);
the recovery key epoch is Long.MAX_VALUE (a completion could never apply): RecoveryKeyResetRequestResult.EpochExhausted;
stores a reset with the candidate ID, bound to the ACTIVE key and epoch read in this step, RecoveryKeyResetRequest.now as request time and RecoveryKeyResetRequest.eligibleAt: RecoveryKeyResetRequestResult.Created.
Nothing else changes; in particular every last-device recovery challenge stays valid.