[HTC One S] powerpenguin:
I reflashed the partitions from http://xdaforums.com/showthread.php?t=2064868

Unfortunately it did not help. But are these not the wifi partitions for JB? Where can I find those for ICS?

EDIT1:

Found ICS wifi partitions (amazingly evasive using the keywords I searched with):

via http://www.icsforums.com/comment/1809394#comment-1809394

and the original partitions for e.g. Viper 1.2.1 is apparently v1.84 based ROMS (according to above thread), which can be found here:

http://xdaforums.com/showthread.php?p=32170653

Tried flashing 1.84 and 2.35 but it doesn't have any effect.

A peculiar observation:

if I continuously ping from a terminal and switch my wifi on I can see when I have a connection "... icmp_seq=xxxx ..." and when not "Network not reachable"

Almost always the network drops after exactly 142 packets (~=142 sec.). Switching off and on wifi enables network again and this process is repeated.

With all this flashing not having any effect, is my last resort an ICS RUU?

EDIT2: Ok the RUU didn't help, but I checked the logcat, and found the following:

At the time of disconnect, the dhcp lease is renewed. There is, however, no real disconnect, I have a continuous LAN connection, but it seems DNS stops working at that point (i.e. approx 142 sec. after switching on WiFi)

I/wpa_supplicant( 6870): INFO - Deny active power mode because already has gateway
D/WifiStateMachine( 546): handlePreDhcpSetup Held wake lock during DHCP
D/WifiStateMachine( 546): handlePreDhcpSetup getPowerModeCommand:0
D/Dhcpcd ( 7130): sending signal 14 to pid 6888
D/Dhcpcd ( 6888): received SIGALRM, renewing
D/Dhcpcd ( 6888): wlan0: renewing lease of 192.168.2.102
D/Dhcpcd ( 6888): wlan0: sending REQUEST (xid 0x1835ea2f), next in 4.69 seconds
D/WifiStateMachine( 546): fetchRssiAndLinkSpeedNative RSSI = -67
D/Dhcpcd ( 6888): wlan0: broadcasting for a lease
D/Dhcpcd ( 6888): wlan0: sending DISCOVER (xid 0x7e282782), next in 3.60 seconds
D/Dhcpcd ( 6888): offered
D/Dhcpcd ( 6888): wlan0: sending REQUEST (xid 0x7e282782), next in 3.27 seconds
D/Dhcpcd ( 6888): acknowledged
D/StateMachine( 546): handleMessage: new destination call exit
D/StateMachine( 546): invokeExitMethods: WaitBeforeRenewalState
D/WifiStateMachine( 546): handlePostDhcpSetup release wake lock during DHCP
D/WifiStateMachine( 546): handlePostDhcpSetup setPowerModeCommand:0
I/wpa_supplicant( 6870): Power_Mode_Type mode = 0
I/wpa_supplicant( 6870): Set power mode to POWER_MODE_AUTO due to Active_Mode_Enable = 0x0
I/wpa_supplicant( 6870): <mapping sub-ioctl setPower to cmd 0x8BE0-3>
I/wpa_supplicant( 6870): [Simon] ifname[wlan0] fnum[35808]
I/wpa_supplicant( 6870): Enable BMPS success
I/wpa_supplicant( 6870): Enable BMPS timer success
D/DhcpInfoInternal( 546): makeLinkProperties with empty dns2!
I/wpa_supplicant( 6870): WiFi gateway: 0x 102a8c0
D/DhcpInfoInternal( 546): makeLinkProperties with empty dns2!
D/WifiStateMachine( 546): CMD_START_PACKET_FILTERING cmd:5
I/wpa_supplicant( 6870): Got RXFILTER-ADD: 5

Really strange though that it worked a year ago with the same ROM?

Investigating further...

EDIT3:

I messed some with build.prop dhcp lease settings to no avail. I give up.

Setting the ip to fixed is a functional workaround for now. Who knows, on other routers I might not even have this problem.