You could give the NPC select hero ability (same as the neutral shops), this will let players click on the NPC and see their abilities.
Then you could add abilities to the NPC, e.g. "Quest Accept". When a player clicks on it they'd get the quest.
Actually there might not be a way to detect which player it was that clicked, so instead of an ability, just make the NPC sell a dummy unit that's removed on purchase. That way you know which player it was that clicked on the accept button by detecting which player bought the dummy unit.
This way the player can accept the quest whenever they want and there can be multiple quests without any dialog window (I personally don't like the dialog windows)