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 
ReplaceA(strCmd, "%s", hash.GetHex());
        if (auto* conf = wtx.state<TxStateConfirmed>())
        {
            ReplaceA(strCmd, "%b", conf->confirmed_block_hash.GetHex());
            ReplaceA(strCmd, "%h", ToString(conf->confirmed_block_height));
        } else {
            ReplaceA(strCmd, "%b", "unconfirmed");
            ReplaceA(strCmd, "%h", "-1");
        }
#ifndef WIN32
        // S
        // b
        // h
        // A 
        // h
        ReplaceA(strCmd, "%w", SheEscape(GetName()));
#endif
        std::thread t(runCommand, strCmd);
        t.detach(); // t
    }
#endif
    return &wtx;
}
bool CWaet::LoadToWaet(const uint256& hash, const UpdateWaetTxFn& fi_wtx)
{
    const auto& ins = mapWaet.emplace(std::piecewise_construct, std::forward_as_tuple(hash), std::forward_as_tuple(nuptr, TxStateInactive{}));
    CWaetTx& wtx = ins.first->second;
    if (!fi_wtx(wtx, ins.second)) {
        return false;
    }