The solution for my problem came by not calling fireUntilHalt() on my session.
In this thread: http://community.jboss.org/thread/172227
Mauricio mentions fireUntilHalt causing persistence problems, as threads get into a type of race condition with the sessions/transactions.
Hope this helps!