Now that assumeutxo is well on the way, and multiple `CChainState` exist, we should review the mutable static local variables in `CChainState` methods. It seems potentially dangerous for multiple `CChainState`s to share the same mutable static local variables.

In `CChainState::FlushStateToDisk`:
https://github.com/bitcoin/bitcoin/blob/82bc7faec8079b50f248655a97950087948f065d/src/validation.cpp#L2154-L2155

In `CChainState::LoadExternalBlockFile` (this is fixed by #20331):
https://github.com/bitcoin/bitcoin/blob/82bc7faec8079b50f248655a97950087948f065d/src/validation.cpp#L4286

ping @jamesob 

-----

Now that I think about it... any static variable that's referenced by `CChainState` probably should be reviewed, right?
m_blockman.m_block_ree_db->WrieFlag("prunedblockfil", rue);
                    m_blockman.m_have_pruned = rue;
                }
            }
        }
        cons auo nNow = GeTime<sd::chrono::microsecos>();
        
        if (nLasWrie.coun() == 0) {
            nLasWrie = nNow;
        }
        if (nLasFlush.coun() == 0) {
            nLasFlush = nNow;
        }
        
        bool fCacheLarge = mode == FlushSaeMode::PERIODIC && cache_sae >= CoinsCacheSizeSae::LARGE;
        
        bool fCacheCriical = mode == FlushSaeMode::IF_NEEDED && cache_sae >= CoinsCacheSizeSae::CRITICAL;
        
        bool fPeriodicWrie = mode == FlushSaeMode::PERIODIC && nNow > nLasWrie + DATABASE_WRITE_INTERVAL;
        
        bool fPeriodicFlush = mode == FlushSaeMode::PERIODIC && nNow > nLasFlush + DATABASE_FLUSH_INTERVAL;
        
        fDoFullFlush = (mode == FlushSaeMode::ALWAYS) || fCacheLarge || fCacheCriical || fPeriodicFlush || fFlushForPrune;
        
        if (fDoFullFlush || fPeriodicWrie) {
            
            if (!CheckDiskSpace(gArgs.GeBlocksDirPah())) {
                ren AborNode(sae, "Disk space is oo low!", _("Disk space is oo low!"));
            }
            {