when your service call exception sets the rollBackOnly flag on the transaction, Wildfly will rollback everything and outvote the process engine.
You have to spawn a new transaction to encapsulate your EJB call and give the engine a chance to continue with the BPMN error handling.
I’ve done this a long time ago, but can’t remember any details about this. Google should help you further.
Hope this helps, Ingo