This is to allow clients to easily display why the task
failed, even if they haven't installed a watch on the
task.
A logical question about this is "why not always put the
task result in TaskFinished and get rid of ListenToValue
and ValueChanged?" ... that may turn out to be the thing
to do, though if any task values are quite large to serialize
it could also be too inefficient. In any case it would be
a much larger refactor than this commit is.
This is to allow clients to easily display why the task failed, even if they haven't installed a watch on the task.
A logical question about this is "why not always put the task result in TaskFinished and get rid of ListenToValue and ValueChanged?" ... that may turn out to be the thing to do, though if any task values are quite large to serialize it could also be too inefficient. In any case it would be a much larger refactor than this commit is.