Fix blocking_yield usage + catch exceptions (OMS-177)

Needs testing, but I'm hoping that this pattern will help us get rid of the blocking_yield antipattern.