Ok so you are both right and wrong.
Yes the quest will fail on insane difficulty if you are in a scenario where there was a rally point. If there is no rally point, there is no way to fail the quest at a given phase.
In the example below I ate glass during the Time objective, respawned and the quest (and timer) was still going.
Waited for the timer to lapse, ate glass, died and was still going after.
Activated the rally point, died and then it failed.
I would want the ability to specify at which phase you could fail a quest when you die or leave the game. Would give the flexibility to only have certain stages where you could fail, not based on the type of objective basked into the code but based on choice.
In the case below I would like it to fail so long as the Timer is active.
<quest id="challenge_FailQuest">
<property name="name_key" value="challenge_FailQuest_name"/>
<property name="subtitle_key" value="challenge_FailQuest_subtitle"/>
<property name="description_key" value="challenge_FailQuest_description"/>
<property name="icon" value="ui_game_symbol_quest"/>
<property name="repeatable" value="true"/>
<property name="shareable" value="true"/>
<property name="category_key" value="challenge"/>
<property name="difficulty" value="insane"/>
<property name="difficulty_tier" value="1"/>
<property name="offer_key" value="challenge_FailQuest_offer"/>
<property name="completiontype" value="AutoComplete"/>
<objective type="Time" value="80" phase="1"/>
<action type="SpawnEnemy" id="zombieBoe" value="1" phase="1">
<property name="delay" value="1"/>
</action>
<action type="SpawnEnemy" id="zombieJoe" value="1" phase="1">
<property name="delay" value="3"/>
</action>
<action type="SpawnEnemy" id="zombieFemaleFat" value="1" phase="1">
<property name="delay" value="5"/>
</action>
<action type="SpawnEnemy" id="zombieJanitor" value="1" phase="1">
<property name="delay" value="7"/>
</action>
<action type="SpawnEnemy" id="zombieMoe" value="1" phase="1">
<property name="delay" value="9"/>
</action>
<action type="SpawnEnemy" id="zombieLab" value="1" phase="1">
<property name="delay" value="11"/>
</action>
<action type="SpawnEnemy" id="zombieArlene" value="1" phase="1">
<property name="delay" value="16"/>
</action>
<objective type="RandomPOIGoto">
<property name="phase" value="2"/>
<property name="biome_filter_type" value="ExcludeBiome" />
<property name="biome_filter" value="wasteland" />
<property name="nav_object" value="quest" />
</objective>
<objective type="RallyPoint">
<property name="phase" value="3"/>
<property name="nav_object" value="rally" />
</objective>
<objective type="FetchFromContainer">
<property name="phase" value="4"/>
<property name="quest_item_ID" value="91"/>
<property name="item_count" value="1"/>
<property name="default_container" value="cntFetchQuestSatchel"/>
<property name="fetch_mode" value="Standard"/>
<property name="nav_object" value="fetch_container" />
</objective>
<objective type="ReturnToNPC">
<property name="phase" value="5"/>
<property name="nav_object" value="return_to_trader" />
</objective>
<objective type="InteractWithNPC">
<property name="phase" value="5"/>
<property name="nav_object" value="return_to_trader" />
</objective>
</quest>
I even tried using the RandomGoTo rally point and that doesn't fail the quest either.
Seems very specific to going to POIs and having a clear or fetch objective, nothing else.
<objective type="RandomGoto" value="200-300" phase="1">
<property name="completion_distance" value="50"/>
<property name="nav_object" value="quest" />
</objective>
<objective type="RallyPoint">
<property name="start_mode" value="Create"/>
<property name="phase" value="2"/>
<property name="nav_object" value="rally" />
</objective>