Good recommendations (especially around the params). With the "try to tell it clearly...", I thought that keeping it simple in terms of not returning another task would make things simpler to understand.
If I were to return a Task from this method I would make it generic and return an array of HttpResponseMessages:
static Task<HttpResponseMessage[]> Run()
{
...
return Task.WhenAll(task1, task2);
}