Task.resolve() does not return a Task() as contracted. Instead it returns a Promise.
Because it is simply calling the super static method, which returns a Promise. It probably should do what the PromiseShim does instead, which is return a new this which is resolved with the value passed.
Task.resolve() returns a Task