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?
VALID, 
        INVALID, 
        MEMPOOL_ENTRY, 
        DIFFERENT_WITNESS, 
    };
    
    const ResultType m_result_type;
    
    const TxValidationState m_state;
    
    
    const std::optional<std::list<CTransactionRef>> m_replaced_transactions;
    
    const std::optional<int64_t> m_vsize;
    
    const std::optional<CAmount> m_base_fees;
    
    
    const std::optional<uint256> m_other_wtxid;
    static MempoolAcceptResult Failure(TxValidationState state) {