Update: 2012-03-29 AMUpdate: 2012-03-29 AM: The root cause seems to be an inability to renew a DHCP lease - changing the lease time to 30 minutes caused the connection to drop precisely 30 minutes after connecting the phone to the router.
Update: 2012-03-29 PMUpdate: 2012-03-29 PM: That there is a general problem renewing DHCP leases is born out by testing all day with a short lease time; every (or very nearly every) attempt at renewing the lease fails, and then disconnects and reconnects the WiFi service. Now knowing precisely what the problem is and what to search for, it may be that this is a long-standing problem with the Android WiFi service, present since 2.2 and still a problem even in 4.0.