Also, the non-transacted unit tests start-up a transaction by calling UserTransaction.begin. So somehow the ejb that is transacted does not have its transaction joined up to the transaction started by the unit test using the UserTransaction.
Anything changed w/ looking up the client user transaction?
Here is the code in the setUp() method of the unit test.
InitialContext ic = new InitialContext();
UserTransaction tx = (UserTransaction) ic.lookup("UserTransaction");