In cases like these, where I know the conversation will drive the player to an end result, such as the NPC becoming hostile regardless, I put the same script that would turn the NPC hostile, including setting any variables for this that are required, on the conversation's ABORTED option.
So if a player does hit ESC because they don't like the way the conversation is going, knowing ahead of time it looks like the NPC is going to attack them - and they want to explore other conversation options to see the result they're looking for - the NPC attacks.
Another trick I use is to set variables along in the conversation with major plot moving NPCs that offer choices or paths for the player to move through. Once they reach a certain part of the conversation, a variable is set. If they hit ESC and restart the conversation, I have a script to check for the variable and if it matches, jumps them right back to the last known location in the conversation that variable was set - forcing them to continue along the choices they've already made.
Of course, this doesn't work if they reload a saved game.
'>
FP!