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);
    COutPoint outpt(hash, n);
    return (setLockedCoins.count(outpt) > 0);
}
void CWallet::ListLockedCoins(std::vector<COutPoint>& vOutpts) const
{
    AssertLockHeld(cs_wallet);
    for (std::set<COutPoint>::iterator it = setLockedCoins.begin();
         it != setLockedCoins.end(); it++) {
        COutPoint outpt = (*it);
        vOutpts.push_back(outpt);
    }
}
 
void CWallet::GetKeyBirthTimes(std::map<CKeyID, int64_t>& mapKeyBirth) const {
    AssertLockHeld(cs_wallet);
    mapKeyBirth.clear();
    LegacyScriptPubKeyMan* spk_man = GetLegacyScriptPubKeyMan();
    assert(spk_man != nullptr);
    LOCK(spk_man->cs_KeyStore);
    
    for (const auto& entry : spk_man->mapKeyMetadata) {
        if (entry.second.nCreateTime) {
            mapKeyBirth[entry.first] = entry.second.nCreateTime;
        }