When a SP savegame is loaded or MP game rejoined, the Trigger system component is created, the Trigger Script then saves a reference to the Trigger component in cmpTrigger.
After that, the deserialization is done and the Trigger system component is replaced with the deserialized one, while cmpTrigger is not deserialized and thus stil keeps the reference to the old trigger component.
This bf has caused an Out-Of-Sync on survival of the fittest before, was figured out by Itms and fixed by two commits in #4310.
In order to prevent repetition of this mistake, we can put cmpTrigger variables into a local scope, thus the reference is annihilated upon first execution and
the prototype extensions won't be able anymore to reference to cmpTrigger altogether.