When the exception is cached and throw; is not applicable, another technique is needed to preserve the original exception's context. Storing it as an InnerException is one way, but I think in this case, it's more useful to rethrow it without changing its context:
ExceptionDispatchInfo.Capture(ex).Throw();
A pull request is on the way.