Enhancing exception handling

Previously, a sync worker receiving
a ConnectionError exception would
be effectively dead but the sync worker
would still be waiting for more results.
This patch adds a check that if
all the worker processes have failed,
the syncer should exit.

Signed-off-by: Joe Buck <jbbuck@gmail.com>