I have a somewhat similar problem, and I think the main culprit is my telephone line. Sometimes my connection just drops, meaning it does not exactly break, the
ADSL light is still on, but there is no data transfer. What happens is that the Internet connection from BSNL's side stops, then after a few minutes (sometimes it takes up to fifteen minutes) when it starts, if I just try to connect/disconnect with the dialer, nothing happens, the dialer just stops at the message about trying to connect to the WAN. I have to then manually switch off the modem and start it again, and then everything works fine.
Now this would not be such a big problem if I was present at the computer every time it happens. But at times, in the morning, when I have scheduled downloads to begin at 2:10, and I am asleep, this thing happens, and often I have woken up later, once at about 4:00, to find that nothing was downloading, but the modem's ADSL link was showing that the link was fine. I have actually configured the BSNL connection in Task Scheduler so that it keeps connecting every ten minutes, so if the ADSL connection has broken, the dialer runs after a few minutes and if the computer is not connected, it reconnects. If the connection is already working and the download is going on, it doesn't do anything, it quits, and checks after another ten minutes. But this modem freezing up problem is something else.
If I want to make sure that the downloads resume after such a problem happens, I will have to add another task in the Task Scheduler to reboot the modem every half an hour, but that would mean that even if the connection was stable and the downloading was going on, it would still forcibly reboot the modem.
Does anyone know of anything that sort of monitors the Internet connection and makes sure that the downloads keep running, reconnecting if the connection has broken, and rebooting the modem if no sizeable transfer occurs for more than fifteen minutes? Of course, it would have to be an intelligent program for that, but I just thought I'd ask.