Because:
- deleteAccount_22 deleted accounts before passkeys, violating the
passkeys.uid FK constraint.
- The route swallowed the failure silently, returning success even
though the account was not deleted.
This commit:
- Adds deleteAccount_23 with passkeys deleted before accounts.
- Throws AppError.accountDeletionFailed (errno 239) so the UI shows
a meaningful error.
- Tags account.destroy.failure metrics with the failing cleanup stage.
- Skips the 239 when only post-DB cleanup fails (cloud task retries).
Closes #FXA-13676