Let's see if this might help.
My wife changed from a 3G to a 4s. Wifi connection became haphazard - so I thought: here we go...
We had encountered some on-and-off LAN problems at home before, so some time ago I changed all IP addresses to static.
That had solved most of the problems. Not really all, because every now and again (not more then about once a week) the iPad2 refuses to connect after re-awaking; switching off and on the wifi connection was (and is) sufficient to have it working flawlessly for the session and longer.
Anyway, when I was setting and resetting the IP connection on the new 4s, I noticed something odd.
First, I set the IP address to 'Static'. After that I would fill in the address itself, the gateway and the DNS addresses.
During this editing, the field 'Static' would sneakily keep reverting to 'DHCP'. That would of course ruin the whole operation.
Once I kept close attention to the end state of the whole editing operation, things were going ok. No problems since.
It might be good to paint the full picture to get things straight.
Components in the LAN:
SpeedTouch ADSL-modem - DHCP server switched OFF
Linksys/Cisco WAP - DHCP server switched OFF
Several Windows PC's, Windows 7, static IP addresses
MacBook, Lion, static IP address
iPhone 4, iOS 5.0.1 Redsn0w, static IP address
iPhone 4s, iOS 5.0.1, unbroken, static IP address
iPad 2, iOS 5.0.1 Absinthe, static IP address
Important: ALL of the static connections need to have one or more DNS server addresses attached in the Settings dialogue. If not, no device will be able to make any connection. Look at the info from your Internet provider for that.
After editing the LAN settings in this way, it might be a good idea to soft reset your router/WAP.
Also (IMPORTANT) leave the power off for at least 30 seconds. This will clear some caches that might keep giving you trouble.
Hard resetting the router (PLUS switching off power) should only be a last resort.
Why this works? My guess is, that after re-awakening an iDevice, the iPhone and iPad keep asking for IP-addresses even though the previous one has not expired or is cached somewhere. Telltale: every now and again, one of the Windows PC's kept seeing IP address conflicts.
Setting everything to Static avoids resulting address conflicts.
The fact that in the workplace these problems seem all but absent suggests that there the IP lease times and cache flushing intervals are routinely set different. Maybe. Sorry, too much trouble to go check all that.
Only the iPad2 now keeps giving some (bearable) problems as described above. Might even be Absinthe.
Please let me know if this does any good for anybody?
Success, good luck,
-Ruud