Does this class really need to do the commit itself? 'And' always sounds weird in a class name...
In fact, I think I would prefer having two tracker instances, one for regular state transfer and one for x-site state transfer. 

I don't think `stateTransferTracker.runIfNotUpdated(() -> xsiteStateTransferTracker.runIfNotUpdated(() -> commitEntry()` should slow down the concurrent scenario where regular state transfer and x-site state transfer are running at the same time too much, and it should be even a bit faster when only one of them is running (because we wouldn't have to muck around with EnumSets).

I was also thinking whether extracting the "low-level locking" for ST, x-site ST, and passivation into a separate component would make sense. I believe the the lock container in ClusteringDependentLogic used for passivation could easily be replaced with a `ECHMV8.compute()`, but then we'd need to keep the tracking in the same map to get any advantages from the unification. And I don't really like keeping an EnumSet in there...