Round 2 of fixing the doSyncNs method.

 * don't throw exceptions from the callback
 * reopen a new channel if the channel gets disconnected because of an
   error.
 * remove auto-delete flag that is not needed now that we don't throw
   exceptions in the callback.
 * remove ttl setting that is not needed now that we don't throw
   exceptions in the callback.
 * Add helpful comments to code.