Catch errors after our then()s, instead of in parallel with them (this missing exceptions)

When an error is thrown in a then() success handler, it doesn't call the same then()'s error handler.

I also made all of the utils.reject handlers verbose to aid in debugging.