Note how complicated the chaining of continuations can gets, and the same happens in Scala, but there is a feature that C# has that kills Scala in this aspect.
How C# beats Scala in async programming
Nicolas A Perez

You can already use it:

I used it extensively at Morgan Stanley and it turns out to be less good than using a Future as a monad.

In Scala you can do:

def doThis() = async {

await{ … }