Yep that's the real crux of the matter.
It's save-returns-a-promise vs. async-waterfall-hooks (which I know you hate ;)
I'll give it one more shot, maybe try to wrap the hooks in a Promise.