30 seconds is more than enough; either way you should return a no-op message when a time passed and no new events occur.
This prevents client timeouts and is done by everybody who does comet.
Just send the request, and on the server make it wait until an event or timeout after 25 seconds.