The reason I wrap here (even before this change) is that this means `onError` itself failed while trying to pass the error along and I wanted the RuntimeException with the following message:

> RuntimeException r = new RuntimeException("Error occurred attempting to subscribe [" + e.getMessage() + "] and then again while trying to pass to onError.", e2);

I felt that was clearer to include this message than just propagating an error and people not understanding why it didn't go to `onError`, as an Error/RuntimeException being thrown instead of emitted to `onError` is a "bad thing" in an async system.