Synchronously execute code on the UI thread when reconciling changes

Under some circumstances -- for example, when pasting something over
existing text -- the reconciler can receive two events for the same region.
Synchronous execution is the easiest way of ensuring that the second event
won't be processed until the first one has been fully reconciled