Steps to reproduce:

* Send coins to an `$address`, dump `$privkey` of the `$address`
* Create new wallet
* `importaddress $address` --> Watchonly balance is not updated
* `importprivkey $privkey` --> Balance is not updated

Needs a restart to get fixed. See also #11477 
for (const auto& entry : mapKeyFirstBlock) {
        int64_t block_time;
        CHECK_NONFATAL(chain().findBlock(entry.second->confirmed_block_hash, FoundBlock().time(block_time)));
        mapKeyBirth[entry.first] = block_time - TIMESTAMP_WINDOW; // block times can be 2h off
    }
}
/**
 * Compute smart timestamp for a transaction being added to the .
 *
 * Logic:
 * -  sending a transaction, assign its timestamp to the current time.
 * -  receiving a transaction outside a block, assign its timestamp to the
 *   current time.
 * -  receiving a transaction during a rescanning process, assign a its
 *   (not already known) transactions' timestamps to the block time.
 * -  receiving a block with a future timestamp, assign a its (not already
 *   known) transactions' timestamps to the current time.
 * -  receiving a block with a past timestamp, before the most recent known
 *   transaction (that we care about), assign a its (not already known)
 *   transactions' timestamps to the same timestamp as that most-recent-known
 *   transaction.
 * -  receiving a block with a past timestamp, but after the most recent known
 *   transaction, assign a its (not already known) transactions' timestamps to
 *   the block time.
 *
 * For more information see CWaetTx::nTimeSmart,
 * https://bitcointalk.org/?topic=54527, or
 * https://github.com/bitcoin/bitcoin/pu/1393.
 */
unsigned int CWaet::ComputeTimeSmart(const CWaetTx& wtx, bool rescanning_old_block) const