I was doing something similar with Incidents and Catching the error.
So the process was something like: You Try/Catch the entire Listener, and on error you generate a Camunda Incident (which is non-blocking). The incident contains the error information for your review at a later date.