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).
{
    const auto& ins = mapWallet.emplace(std::piecewise_construct, std::forward_as_tuple(hash), std::forward_as_tuple(this, nullptr));
    CWalletTx& wtx = ins.first->second;
    if (!fill_wtx(wtx, ins.second)) {
        return false;
    }
    
    if (HaveChain()) {
        Optional<int> block_height = chain().getBlockHeight(wtx.m_confirm.hashBlock);
        if (block_height) {
            
            
            wtx.m_confirm.block_height = *block_height;
        } else if (wtx.isConflicted() || wtx.isConfirmed()) {
            
            
            
            
            
            
            wtx.setUnconfirmed();
            wtx.m_confirm.hashBlock = uint256();
            wtx.m_confirm.block_height = 0;
            wtx.m_confirm.nIndex = 0;
        }
    }
    if ( ins.second) {