The problem is supposedly fixed in 3.0, but you will probably need to implement an ugly workaround hack on the 2.4.x releases.
Here's a sample hack: Create your own MBean, call it PostStartupMBean, and put it at the end of your jboss.jcml file. Implement the startService() method for this bean, and have it make two HTTP requests to localhost. The first should initialize your JDBC Persistence Manager, the second should start it. Everything should work now since this won't execute until your datasources have been started.