I'm sometimes getting an invalid json reply from `getwalletinfo` when rescanning is in progress.

The invalid part is this: `"scanning":{"duration":19,"progress":}}` (no value for `progress`).

I can't reliably reproduce this, but I did manage to run into this 3 times now (once every 10-20 attempts or so).

I'm running v0.20.0 and testing against a regtest instance. This happens while doing a batched `importmulti` of 2000 addresses (none of which have history).
{
    AssertLockHeld(cs_wallet);
    
    if (!chain().checkFinalTx(*wtx.tx)) return false;
    int nDepth = wtx.GetDepthInMainChain();
    if (nDepth >= 1) return true;
    if (nDepth < 0) return false;
    
    if (!m_spend_zero_conf_change || !wtx.IsFromMe(ISMINE_ALL)) return false;
    
    if (!wtx.InMempool()) return false;
    
    for (const CTxIn& txin : wtx.tx->vin)
    {
        
        const CWalletTx* parent = GetWalletTx(txin.prevout.hash);
        if (parent == nullptr) return false;
        const CTxOut& parentOut = parent->tx->vout[txin.prevout.n];
        
        if (IsMine(parentOut) != ISMINE_SPENDABLE) return false;
        
        if (trusted_parents.count(parent->GetHash())) continue;
        
        if (!IsTrusted(*parent, trusted_parents)) return false;
        trusted_parents.insert(parent->GetHash());
    }
    return true;
}
bool CWalletTx::IsEquivalentTo(const CWalletTx& _tx) const