Just a thought: shall we set `task` to None quietly (as in `traits_setq(task=None)`)?
This is to avoid this operation triggering events, in which handlers we'll have to specify `if self.task is not None` etc.
I'm not sure if it's a good idea, but if it is it's a pattern to remember because this kind of thing happens quite often.