Fix async helpers losing proper "this" context

Fixes #1357

- Instead of calling the passed function directly, use .call(this,
  options)