Reimplement duration in terms of offsetTime
Implement a Task monad, hopefully the basis of a faster thread pool