This script is far more efficient than what I've been using, thanks! For anyone who wants the exact code, this is what I used:

[INIT]
CharacterSetVarInteger(CHARACTER_TestDelete, "TestDeleteDialog", 1);

[KB]
IF
DialogStartRequested(CHARACTER_TestDelete, _Player)
AND
CharacterGetVarInteger(CHARACTER_TestDelete, "TestDeleteDialog", 1)
THEN
DialogStartTwoSpeakerDialog("firstdialog",CHARACTER_TestDelete,_Player);

IF
DialogStartRequested(CHARACTER_TestDelete, _Player)
AND
CharacterGetVarInteger(CHARACTER_TestDelete, "TestDeleteDialog", 2)
THEN
DialogStartTwoSpeakerDialog("seconddialog",CHARACTER_TestDelete,_Player);

IF
GlobalEventSet("StubbornPlayer")
THEN
CharacterSetVarInteger(CHARACTER_TestDelete, "TestDeleteDialog", 2);