I was wondering the same thing when I put in this logic, then wondered "if there's a start message, there would be no need to have a delay."

Delay is there for when there is no indicator message, right?

I guess what you're proposing is that delay prevents a script from hanging if the start message hasn't come across yet, but wouldn't you want to wait on that message?  Otherwise, the remaining grunt tasks will continue to run before the server has started.