backupSeed

Back up the current sigil identity + the locally-stored seed to Google Block Store. Pipeline: load seed via seedVault (biometric) → derive a PRF-encrypted AES key from the passkey → sigilBackup.backup uploads the encrypted blob.

No-op if status isn't SigilStatus.Forged (without a sigil there's nothing to bind the encryption to). Errors log + leave status unchanged — backup is a side operation, doesn't transition state.

appMetadata is sourced from the host-provided AppDataBackupProvider when one is bound. When no provider is bound (BBoard et al.), the field stays null and only the seed goes up.