Changed await-semantics to use TaskCompletionSources where applicable.