Use a different event for the debrief check?
No, no, that's not the problem. The thing is that game seems to confuse the fact the player has been killed with the fact he turned traitor. To test it, make the following:
1. Create a mission with some friendly units (so you can become a traitor to test custom debrief) and some enemy units (so you can get killed and see what will happen)
2. Create the following events:
Traitor detection
-when
--if-iff
---traitor
---Alpha1
--do-nothing
chain to (with 1 delay or more):
Force end
-when
--true
--change-iff
---Hostile
---Alpha1
---end-mission
3.Create some traitor debrief with formula:
-is event-true-delay
--Traitor detection
--0
4. Play and:
a) fire on friendly units and become a traitor - the mission will end and you will get the debrief (which is good)
b) do not become a traitor and get yourself killed. Soon after you are killed, the mission will end (you won't get the quit/restart/quickstart choice) and you will get your traitor debriefing (which is not good)...
The number of different debriefings is not important. It seems that killing alpha1 triggers Traitor detection event true. Surprisingly when you end-mission in the same event as is-iff, the problem will not occur.