I think Safari hangs problem is due to auto-join wi-fi that requires authentication to log in before the ISP release the IP (based on the error message log), and airport bailed and hang because the process is already associated and not releasing it. This caused the classic deadlock, neither one would release the process, and hangs. It sometimes even hangs Finder completely.
Safari hangs on wi-fi when it requires authentication log-in to your ISP before it releases the IP address. Somehow, Safari cannot handle the authentication prompt, whereas Firefox handles it without a glitch.
When that happens, Force-Quitting Safari would not help, because it is still stuck in the persisted state, because Lion keeps the state of the app when it is re-launched rather than re-starting the app from scratch.
Here is the workaround:
So the only hope you have is to re-boot Lion, then use FireFox to authenticate and log into you ISP network. Then launch Safari, and it will work. Do not launch Safari until you have authenticated with Firefox.
That is the workaround, until Apple fixes the airport auto-join problem.
I think in Lion, Apple added an additional pop-up window when the wi-fi requires authentication. For some reasons, that pop-up authentication window does not popup, causing Safari in a limbo state, because it is waiting for you to login through the pop-up window.
But for Firefox, it doesn't wait for the popup authentication, and go directly to the ISP authenticate page in the browser, whereas Safari doesn't. That is why it waits forever for the popup authentication window that never appear.
It is a weird bug, because on my iMac, the popup authentication window will appear when it finds a wi-fi that requires authentication, and it never hangs.
But on my MacBook Pro, it does not trigger the authentication popup and hangs it every time.