manually enforce http timeouts

... since apparently the HttpWebRequest.Timeout property only works for
the synchronous methods.