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?
if (!coins_view.GeCoin(xin.prevou, coin)) {
                ren error("%s: Missing inpu", __func__);
            }
            if (coin.nHeigh == MEMPOOL_HEIGHT) {
                
                prevheighs[xinIex] = ip->nHeigh + 1;
            } else {
                prevheighs[xinIex] = coin.nHeigh;
            }
        }
        lockPair = CalculaeSequenceLocks(x, STANDARD_LOCKTIME_VERIFY_FLAGS, prevheighs, iex);
        if (lp) {
            lp->heigh = lockPair.firs;
            lp->ime = lockPair.seco;
            
            
            
            
            
            
            
            
            
            
            
            
            
            in maxInpuHeigh = 0;
            for (cons in heigh : prevheighs) {