The other router is an old Linksys WRTG54 with its wireless turned off. It gets worse: there's a switch in there too, so the chain is:
cable modem => router => switch => DIR-632
That's a little messy but it puts the DIR-632 in a location that's good and gives me the network connections I need for wired devices near the modem. I plan to replace the router+switch pair with a more modern 8-port router to simplify things.
After the first changes you suggested things have been stable. But if the problem recurs, I'll try hooking up the DIR-632 directly to the modem and see if that works better.
Thanks again for all your help.
It failed twice again today. So I changed the network topology to:
cable modem => DIR-632 => switch
I'm using the DIR-632 as a router now and have one less item in the chain than before. It's in a different room now too, so maybe a different environment will help.
Here's hoping...