I noticed that the non generic TaskCompletionSource class is in the System.Diagnostics namespace instead of System.Threading.Tasks.
Obviously can causes compiler errors if the type is referenced by namespace or if the System.Diagnostics namespace is not brought into scope.