beginAsync returns an async context with .end()