Each download request should only increment the failure count once
From legacy/trac#20499 (moved):
At startup (or reload) the relay fetches the microdesc consensus
1 minute later it tries to fetch it again (update_consensus_networkstatus_downloads() is called) and receives a 304 response as it hasn't been modified
download_status_increment_failure() gets called with a status_code of 304
update_consensus_networkstatus_downloads() gets called again, this time it stops at the call to connection_dir_count_by_purpose_and_resource() which returns 1 (equal to max_in_progress_conns)
download_status_increment_failure() gets called again, this time with a status_code of 0 (as a result each 304 response results in the fail count being increased by 2)