I'm still trying to figure out the way 4.0.4GA (EJB3 deployment) is using Quartz, but I was running into problems too. The problem that I think most people will have is that JBoss uses the same instance name that the default config from the Quartz distribution uses. Depending on how the service is deployed, sometimes our Quartz was used and persisted in our MySQL database but if the JBoss instance was used the jobs were created in the RAMJobStore and lost if we restarted JBoss!
So far the solution for me was to change our quartz-service.xml config instanceName value from the default of DefaultQuartzScheduler to something else.
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
Also, since JBoss already includes the quartz-all-1.5.2.jar file in the lib directory, you don't need to put that in the deploy directory anymore and the following line (or similar) can be removed from the quartz-service.xml file:
<classpath codebase="." archives="quartz-all-1.5.2.jar"/>
This seems to be working for us so far, but I only just got it going so it hasn't been tested too much.
If someone has a better way to create a persistance job store using Quartz in JBoss, please let me know!