don't force run-loop flush to be deopted

usage of a try/catch's currently deopt an entire function in v8

this implementations concept:
* only introduce capturing try/catches when using onError
* never deoptimize the flush loop

questions:
* unsure if we should inline the non onError path