Async throw state

Fixes #911
Fixes #884