RunAsync currently calls cancelAllDialogs when a parent sends an EoC activity and when the skills returns EoC. It should only call cancelAllDialogs when the EoC comes from a parent, otherwise it discards the return value from the skill.