Fix system timer context logic.
Fix system timer context logic.

context.Err() is not defined until after context.Done() is closed. This means
that the timer should not use context.Err() as a proxy for context.Done().

Note that, on the bottom changed line, the original behaviour was effectively
trying to check the context once the retry timer expired. This is unnecessary
and doing it properly would complicate the code somewhat. If the select ends up
blocked then it will grab whichever one frees first. It is within the margin of
error for the context to get canceled and the timer to expire at the same time,
in which case the cancel won't be noticed until the next time through, which
should be fine.

R=maruel@chromium.org, vadimsh@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2801843002

luci/luci-go,luci/luci-go,luci/luci-go,luci/luci-go,luci/luci-go,luci/luci-go