Pipe output from child task on-demand rather than after completion, other minor fixes