I don't know if I open an old issue, but I'm not convinced that the Arduino should set the line high. I read the datasheet over and over again, and I think it is not very clear but I read the datasheet as if the resistor pulls the line high.
The datasheet tells that the "DHT pulls up voltage...", but I assume it is an open collector output. So they mean the pull-up resistor. So when the datasheet tells that the "MCU pulls up voltage...", I think they mean it in the same way.
But this works as well:
// The line should be set as INPUT_PULLUP.
// Make it output to pull it down.
// Wait at least 18ms, so let's wait 25ms
// The DHT11 will react in 20 - 40us.
// Let's wait 50 to be sure it has responded.
I use the resistor to make the pullup. So there will be no shortcut when the DHT11 pulls the line down.
I also wait 25ms, since 18ms is the minimum.
And I wait 50us, to be sure that the DHT11 has already pulled the line down.