I believe option one is indeed the easier and better one to set up. How you go about it depends on the type of your application and especially in which container you are running. If for example you are running in a JBoss container you really just have to write and deploy a single MBean.
However, I also managed to successfully configure a Master/Slave setup using Tomcat together with ActiveMQ which is described here:
http://www.hibernate.org/421.html. The problem is less writing the code, but more understanding how to setup and configure JMS.
Have you actually tried synchronous index updates? Index updates are incremental and quite fast. Besides, while the index gets updated it is still searchable. If you only have a single application instance (unclustered) I would recommend starting of with a synchronous indexing approach and test the performance. Configuring a JMS backend is an orthogonal problem which you can easily tackle later in case performance becomes an issue (or you want to cluster your application). The only changes in your application will be the configuration and the addition of a MBean. Writing your own EventListeners is a much more invasive approach.
I hope this helps :)
--Hardy