If we have an invalid state for an async context, the throw will likely vanish. How about setting `this.storedException = new Error(...); this.rethrowState_();` for the `default:`.