Ya, 30 seconds is an awfully long time.
You could always use something like xwininfo to verify it's running.
For example, if this fails, you have no server running -
xwininfo -display :0 -root
Return on fail should be - "xwininfo: error: unable to open display ":0""
I think xset q could be used, too.
xset -display :0 q
I wouldn't fiddle with gdm - I only use a basic wm and want the minimal work requests to the video card.