Another make_sync edge case fix.

If the wrapped function returns a deferred, return it directly. Passing
it through finished was raising an assertion.