CB-3359 Parse large JSON payloads on a background thread, and yield when executing multiple commands is taking too long.

This doesn't solve large payloads, but does help with locking up the
main thread.
It also prevents locking up the main thread when every exec callback
results in another call to exec().