progress: stop getting stuck in a nested topic during a long inner step

Convert, for example, has loops like this:
for revision in source_repo:
  progress(revisions)
  for file in revision:
    progresss(file)

Prior to this change, we would start showing the file-level progress
when we encountered a big revision, and then we'd get stuck in showing
file-progress instead of revision progress, often producing many many
instantly-completing progress bars rather than the actually-helpful
top-level revisions bar.
httpclient: import 0d1b0a8bc549 to fix bug involving late-arriving RST after a response

After a day of hunting this defect, I'm now unable to reproduce the
bug without this patch applied. Regardless, this should fix the
problem I was observing with wireshark. Hopefully this fixes any
flakiness in the buildbot from http2.

--HG--
extra : amend_source : e791a4bfe74fcc34ea8c1494b1e87d2c1967acf8