To me it looks like perfect scenario for custom activity. First you put your custom activity into wait state (implement execute method) next you can signal it (same way as for regular wait activity) and within signal method you could decide what transition to take.
Please have a look at user guide for details about custom activity: http://docs.jboss.com/jbpm/v4/userguide/html_single/#custom
In general, event listeners should not affect the flow of the process - in my opinion.
Hi Maciej:Thank you so much for the information. We actually also thought about the "custom" node, but just want to know if "state" node can also do it or not. Thanks again.Tun Mang