[WIP] -deliverOnMainThread redux

Building upon @jlawton's work in #1425.

**To do:**

 - [ ] Unit tests