Task cleanup

Fixed all the async/await warnings, and then all the other build warnings too.
Random was redefining the type variable T. Removing the T on the method had a covariance problem. Ultimately this method is static so it should have it's own type variable.