Differentiate errors from failures on AsyncHandler; add test cases