If I remember correctly, the 30 seconds delay after talking to the NPC is an ArcEmu thing. All movement is stopped for 30 seconds upon talking to a NPC, this was introduced to make NPCs act like they do on retail; they too stop moving if you talk to them. I'll see if I can find the specific code that causes this so that you may disable it if you'd like to.
Found it in NPCHandler.cpp:
Code:
421 //stop when talked to
422 if(qst_giver->GetAIInterface())
423 qst_giver->GetAIInterface()->StopMovement(30000);
Comment this out if you want to disable that a NPC's stopped for 30 seconds after talking to him.