fix single url check for external links, add increasing timeout for slow connection

addressing two problems:

1. `5.times do` was executed only once in case of `#<Timeout::Error: execution expired>` - this is fixed with preserving the error in `last_err` and calling `next` to skip rest of the code for this itteration
2. `10` seconds timeout could be to small in rare cases, only today I hit this `timeout` like 5 of 50 times, added a table with `[3, 5, 10, 30, 60]` so first check will `timeout` quite fast on slow connection, but the `timeout` will be increased, ending in `60` which might be even enough for such disasters as remote site restart. also the high timeouts should be compensated with the 10 thread pool above.

did not add any tests yet - but I could think of something if you like this change
@ddfreyne I'm kind of leaning the same way, with the exception of `return ... if ...`. The `return` bit is enough to keep people from overlooking the `if`, since it would mean the rest of the function is dead code otherwise.