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.
HTH