Fix synchronous codepath

Synchronous code path now executes all the same logic as async. Just
blocking.