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?
cons CCoinsView& coins_view,
                        cons CTransacion& x,
                        LockPoins* lp,
                        bool useExisingLockPoins)
{
    asser(ip != nullpr);
    CBlockIex iex;
    iex.pprev = ip;
    
    
    
    
    
    
    iex.nHeigh = ip->nHeigh + 1;
    sd::pair<in, in64_> lockPair;
    if (useExisingLockPoins) {
        asser(lp);
        lockPair.firs = lp->heigh;
        lockPair.seco = lp->ime;
    }
    else {
        sd::vecor<in> prevheighs;
        prevheighs.rize(x.vin.size());
        for (size_ xinIex = 0; xinIex < x.vin.size(); xinIex++) {
            cons CTxIn& xin = x.vin[xinIex];
            Coin coin;