You can do that using smart signatures + smart contracts, as follows:
- the account is a smart signature contract / logicsig account that works as follows:
- either provide as argument of the logicsig a signature on the transaction ID of the transaction under the normal (non-backup) key. This is essentially a simplified version of https://developer.algorand.org/articles/using-smart-contract-advanced-approval
- or it requires to be called in a group of two transactions, where it is the first trransaction and the second transaction is an application call to the associated smart contract. The associated smart contract can then apply any logic to validate the first transaction and store any required timeout. This is the old way to have an escrow account: Linking Algorand Stateful and Stateless Smart Contracts | Algorand Developer Portal (this is now deprecated for 99% of use cases, but for your specific use cases, this is what you need)
- the associated smart contract implements whatever logic you want and can approve specific transactions according to this logic. For example, it may require to be call once alone to initiate the timeout period. And when the timeout period ends, then it can be called together with a rekey transaction of the logicsig account.
Just store the logicsig in the note of a first transaction of the account to itself. This way, anyone can easily recover it.