See #7304.
In the case where there is a proposer shuffling cache miss during gossip verification, we might end up loading the same state and computing shuffling in multiple threads simultaneously, and each of these repeated operation could take up to ~500ms. The above PR uses OnceCell in data column verification to ensure this only happens once.
This change hasn't been applied to block and blob verification, as we want to make sure it's well tested before updating the mainnet code path. It's worth considering adding them there as well, given the impact of a shuffling cache miss (500ms delay in gossip propagation).