I was having quite the same problem some years ago. This is because jboss is using more threads when it is on load (i.e. if there are more than one item in the queue - you can test this really easily if you simulate heavy load).
I think you should separate the creation of the entities. If your MDB realizes the task does not exist and must be created, you should put the task into another queue and wait until it exists.
The second MDB which creates the tasks should search for a mark saying "Creating task xyz" and only if this mark does not exist, the task should be created. Or in short form:
1. Is task xyz is currently created?
2a. No, try to find task with this id. If not found, create mark, create task and delete mark, else skip
2b. Yes, skip