Delimited continuations look interesting. I'd be curious if you could implement something like SJS's ALT operator ('@') with them:
A@B follows both branches A and B simultaneously and, as soon as either one of them returns, it cancels the other one. Cancellation means that the 'losing' branch gets a chance at cleaning up after itself (close sockets, remove ui, etc) and then gets abandoned.
(Disclaimer: I work on SJS)