1) You are right. There is a small bug and “Start” is not call, but I’ve just fixed it and attached for you here the fixed file.
2) Hmm. The best solution I can think of, is to create a very simple custom Condition Task and within, check to see whether or not the “Instigator” is the player. If you want to check this outside Dialogue Tree, then you could also use the events that are raised when a Dialogue Tree starts -> DialogueTree.OnDialogueStarted. It is a static event which you can subscribe.
3) A new Quest graph system (QuestCanvas) is something that I’ve been considering for a while now. I would be very interested to see what features people would be interested in that to have. Let me know what if you have any specific suggestions or request for a new Quest system.