If they were really continuations they'd be fine. But they're not. They're a broken, terrible approximation of continuations.
A real continuation captures the entire execution context including the current call stack.
If you really want to be sure you'll hear about the ultimate success or failure of an asynchronous call, every single asynchronous step needs to manually install it's own exception handler, trap any exceptions, and pass them back via a failure callback. You're basically doing by hand what the runtime environment is actually supposed to do for you (that being the whole point of exceptions).