Task constructor takes new param `allow_null_result`, which defaults to True,
and this setting is backward-compatible.
When True, it means an empty or DO-NOT-KNOW result is allowed as a step or task-level result.
For some scenarios it is useful to set it to False; this retains the current pending message
so it can be passed on to a sub-task, or returned as the result of a task.