multiplexer when() and task() now return the correct futures