Regardless, you need a way to start this service(and maintain that it keeps running). What if it crashes? You gotta restart it. Cron job is a great way. If you only want a single instance of this running, have the script talk to a database. Have it continually tell a database that it's still running, every few minutes or whatever. Start another instance of it every few minutes via cron(or other means), and the first thing it does is check with the database to see if another instance has been active in the last few minutes. If so, it just die()'s before it begins any processing because its not needed. That way if an instance crashes, another one will be spawned to take its place within minutes.
I've never made a forever running php script. People warn that php isn't suited for this, suggesting memory leak issues and I've also heard things about eventually running out of something required to open a file handle. Even if this isn't php's fault, you would need to be careful with user created memory leaks.
Since you're going to need to implement a way to restart this service if it crashes anyway, personally, I would just have the worker do work for a while, and then exit by itself after its done some work, and die(). Let the next instance which will be spawned shortly pick up with the next job.