Dialogs aren't bugged, you just need to use them in the way they are ment to be used.
First of all, make sure all 3 dialogs have the active setting checked and the "auto" start setting unchecked.
As said above, just create 3 dialogs with the NPC as target.
- Create the 1st event on NPC1 : If he's targeted that dialog 1 starts script
- Create an event on the 1st dialog : When Dialog 1 script ends Deactivate Dialog 1
- Create the 2nd event on NPC1 : If he's targeted dialog 2 starts script with the CONDITION that Dialog 1 is not running anymore
- Create an event on the 2nd dialog : When Dialog 2 script ends Deavtivate Dialog 2
- Create the 3rd event on NP1 : If he's targeted dialog 3 starts script with the CONDITIONS that Dialog 1 and 2 are both not running anymore.
Resetting after this step is just a matter of adding an event to dialog 3's end of script to activate dialog 1 and 2 again.
I tried it, and it works, could upload the file if you can't figure it out.