Turns out my disconnects were due to my router's firewall blocking the DHCP server's responses to my renewal requests. My lease would expire (as far as the router was concerned), and it would reset the connection every 60 mins.
The solution was to add:
iptables -I INPUT -p udp --sport 67 --dport 68 -j ACCEPT
to the firewall script through the Tomato (administration->scripts) as recommended here: http://linksysinfo.org/index.php?threads/tomato-drops-everything-whenever-it-renews-the-dhcp-lease.30164/#post-147449
Still doesn't return me back to 7 day leases, but now that I don't get a disconnect every hour, things are good.