I managed to find out where and when exactly it goes down with JDBC commit failed java.sql.SQLException: You cannot commit during a managed transaction!
When the org.drools.persistence.jpa.processinstance.JPAWorkItemManager is called and then it calls some function in org.jbpm.task.service.TaskServiceSession which has doOperationInTransaction (with commit()).
In JPAWorkItemManager it calls
PersistenceContext context = ((PersistenceContextManager) env.get( EnvironmentName.PERSISTENCE_CONTEXT_MANAGER )).getCommandScopedPersistenceContext();
which propably doesn't like when there is later tx.commit(); (tx is RESOURCE_LOCAL transition)
Any further insight?