Correctly handle errors in onItem

There was a bug where if some servers failed but the last one succeeded, the
connections to the bad servers would not be correctly released.

@jnormore @mutemule 

I have yet to find a way to test this properly, since it would involve bringing a server down and up in the middle of the test. Thoughts? I am considering seeing if I can stand up a proxy inline and then just start and stop that...
:+1: