Make sure 'async' functions are called on next tick

This attempts to address #1.