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).
if (!reservedest.GetReservedDestination(dest, true)) {
                    error = _("Transaction needs a change address, but we can't generate it. Please call keypoolrefill first.");
                }
                scriptChange = GetScriptForDestination(dest);
                
                
                
                CHECK_NONFATAL(IsValidDestination(dest) != scriptChange.empty());
            }
            CTxOut change_prototype_txout(0, scriptChange);
            coin_selection_params.change_output_size = GetSerializeSize(change_prototype_txout);
            CFeeRate discard_rate = GetDiscardRate(*this);
            
            CFeeRate nFeeRateNeeded = GetMinimumFeeRate(*this, coin_control, &feeCalc);
            
            
            if (coin_control.m_feerate && nFeeRateNeeded > *coin_control.m_feerate) {
                error = strprintf(_("Fee rate (%s) is lower than the minimum fee rate setting (%s)"), coin_control.m_feerate->ToString(), nFeeRateNeeded.ToString());
                return false;
            }
            nFeeRet = 0;
            bool pick_new_inputs = true;
            CAmount nValueIn = 0;
            
            
            coin_selection_params.use_bnb = true;
            coin_selection_params.m_subtract_fee_outputs = nSubtractFeeFromAmount != 0; 
            
            while (true)
            {