When determining if an exception should be skipped or not, the business exception should be used. However, when an exception is thrown in the listener, it's wrapped by a `StepListenerFailedException`. This leads to it hiding the underlying exception. This commit will unwrap the cause of a `StepListenerFailedException` and use that to determine if it should be skipped or not. Resolves BATCH-2322