1. Install Live HTTP Headers in FireFox. Open it. See what it tells you.
2. Are you using Flash anywhere? If the page cannot find the SWF, or finds the SWF and the Flash is waiting on something, it will spin forever . . .
3. Add simple echo's throughout.
echo "benchmark 1 ";
echo "benchmark 2 ";
echo "end of script ";
If you see "end of script, it's not your program.
4. Included external libraries, like Analytics or other widgets?
5. Jquery/Ajax improperly configured so it's always waiting on something that never comes?
When all else fails, make a copy, break it down to it's smallest parts, start re-adding elements until you find it.