It's likely that either the site you're downloading from or your ISP throttles your bandwidth after a while. It may help to cap the transfer rate with --limit-rate.
There are a few options that tell wget to bail out. Pass --tries (-t) to control the number of retries. You may get better results if you pace out the retries a bit with --wait and perhaps --wait-random. Wget will automatically resume where it stopped if the server supports it. If the transfer rate is throttled to a very low figure, then --read-timeout with a very small parameter, say 0.1 for a tenth of a second, will restart the connection if the rate drops below one packet per 0.1s. Note that the connection will also be restarted if you receive no packet for that length of time due to a network glitch.
If you know in advance approximately how much time you have before getting throttled, then write a shell snippet that kills the wget process and launches it again with the -c option to resume downloading. Warning, untested; working with background subprocesses in the shell is a bit wonky, so I recommend using Perl or Python for serious work.
while wget -q -c http://example.com/wibble & wget_pid=$!
{ sleep 300; kill $wget_pid; } & kill_pid=$!
wait $wget_pid
kill $kill_pid
wait
do sleep 10; done