Naïve time estimates are notorious.  If you only estimate based on status <b>right now</b> instead of a running average or time window, then you jump all over the place as various bottlenecks grow and shrink during the normal process of downloading or copying or rendering etc.  Update your estimate gradually, either using a wide time window instead of just right now, or by gradually springing your running estimate toward, but not instantly to, the current momentary estimate.  It's easy to do and looks a lot better.