Como definir um tempo limite mais agressivo para o HttpWebRequest?

Dentro de uma biblioteca de classes portátil, tenho o seguinte método que publica dados em um URL específico. O método funciona muito bem. No entanto, gostaria de especificar um tempo limite mais agressivo (o padrão é 100 segundos).

Considerando que não há nenhuma propriedade de Tempo Limite na classe HttpWebRequest na Biblioteca de Classes Portátil, como posso ter certeza de que a chamada será abandonada se demorar mais que alguns segundos?

public async Task<HttpResponse> PostAsync(Uri uri, string data)
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";

    using (Stream requestStream = await request.GetRequestStreamAsync())
    {
        byte[] postBytes = Encoding.UTF8.GetBytes(data);
        requestStream.Write(postBytes, 0, postBytes.Length);
    }

    HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();
    return new HttpResponse(response.StatusCode, await new StreamReader(response.GetResponseStream()).ReadToEndAsync());
}

questionAnswers(2)

yourAnswerToTheQuestion