I'm having this issue since I have updated to ICS Official through KIES and the special fact that a few days ago when I was going to my work, I forgot the Wifi powered On. lol
I have noted that it always occur when I don't use Wifi for a few hours, then when I try to activate it, it freezes and the only solution is take off the battery. My suggestions are:
1) Before activate Wifi, Reload the wifi driver typing *#*#526#*#* (source: hxxp://androidadvices.com/fix-android-wifi-problems-connection-issues).
2) If it doesn't work Restart the phone before activate it.
3) Try some custom kernel (Siyah, N.E.A.K. and etc) .
Btw, Factory reset doesn't fix it.
Maybe switching Wifi Sleep policy to "only when conected" in "Settings > Wifi > Advanced can be a workaround too. I'm trying this now and will keep you informed.