You guys should look at asynchronous workflows in F#, here is a Channel9 video on it:

http://channel9.msdn.com/posts/Charles/Don-Syme-Whats-new-in-F-Asynchronous-Workflows-and-welcome-to-the-NET-family/

Asynchronous workflows allow you to express asynchronous computations without having to wrap their continuations.