Performing the following (note the range of 10,000):

`importmulti '[{"desc": "sh(wpkh([aeee1e6a/49h/1h/0h]tpubDC5bVdaveQYxGFztMShFAjU637kKjrs9FD8ne1oHR7z8tLeQJExsaxWRVeSpcCcYMdp5ecf2LQhuVaeYFZ7YEpvWTJr4nDGUJrmuvLuTSsp/1/*))", "keypool": true, "timestamp": "now", "watchonly": true, "internal": true, "range": {"end": 1000}}]' '{"rescan": false}'`

takes many minutes. @achow101 reports a similar import taking 6 minutes on his machine.
LOCK(cs_wallet);
    auto it = mapWallet.find(ptx->GetHash());
    if (it != mapWallet.end()) {
        it->second.fInMempool = false;
    }
}
void CWallet::BlockConnected(const CBlock& block, const std::vector<CTransactionRef>& vtxConflicted) {
    const uint256& block_hash = block.GetHash();
    auto locked_chain = chain().lock();
    LOCK(cs_wallet);
    
    
    
    
    
    
    
    for (const CTransactionRef& ptx : vtxConflicted) {
        SyncTransaction(ptx, {} , 0 );
        TransactionRemovedFromMempool(ptx);
    }
    for (size_t i = 0; i < block.vtx.size(); i++) {
        SyncTransaction(block.vtx[i], block_hash, i);
        TransactionRemovedFromMempool(block.vtx[i]);
    }
    m_last_block_processed = block_hash;
}
void CWallet::BlockDisconnected(const CBlock& block) {