Added exception handling

@isupeene Added exception handling with 1 retry. Realized while doing this that the retry may not help. If problem still exists after retries then the exception is bubbled up via the WrappedError class.
Looks like you're correct:

```ruby
> Thread.new{ raise Exception }.join
Exception: Exception
	from (irb):1
	from (irb):1:in `join'
	from (irb):1
	from :0
```