We can't say that in this case the code has never happened,
Sorry, just a very quick answer (since I get my pile of work done and start vacations next week :-)):
If you have actions which cannot be rolled back you should think about introducing transaction boundaries (async=true in jbpm) correctly.
For the logging I basically extended the DbLoggingService, but there where some tricks to get it to work with the exceptions correctly. Maybe I have time to blog about it after my vacations...
Cheers
Bernd