Dialog really only gets stuck for one reason: You haven't "ended" it and it has nowhere to go.
Make sure you tick the "End Dialog" box in the editor for your conversations when you want dialog to terminate. The game will freeze as soon as you you try to end it otherwise.
Aside from that, if it's freezing in mid-conversation: Make sure you've pushed the correct dialog options for the player to use. I don't know how many times I've written an entire dialog tree and then forgot to give the player access to the options I'd wrote.
Edit:
Also, if your game is going to be two players you might want to consider turning this:
IF
DialogStartRequested(CHARACTER_Gothard,CHARACTER_Player1)
THEN
DialogStartTwoSpeakerDialog("gothardavmelse",CHARACTER_Gothard,CHARACTER_Player1);
Into this:
IF
DialogStartRequested(CHARACTER_Gothard,_Player)
THEN
DialogStartTwoSpeakerDialog("gothardavmelse",CHARACTER_Gothard,_Player);
That simple little change from CHARACTER_PLayer1 to _Player will let either character start dialog with your NPCs.