fix tasks to return streams

You need to return the streams otherwise the task system treats the task function as a simple synchronous task. I noticed your benchmarks seemed a little too good to be true