The third reason, if UnitConfig.customDispatchCheck returns a falsy
value.
The fourth reason, if UnitConfig.distinctDispatchCheck is not false
and the dispatched value is same as current value.
The first reason, if the Unit is frozen.
The second reason, if the dispatched value is invalid.
All the reasons for why a Unit dispatch might fail.