Greatly simplified implementation of `when`, by using `tee` and assuming `condition` is roughly continuous
Added unit tests for async.scala