Yeah, this used to be a real pain point.
Page 311 of the .NET Framework Design Guidelines has this quote from Chris Sells (then a program manager for .NET, I think):
> Please make progress reporting move forward, if for no other reason than my family makes fun of me when they see a progress report going backwards, as if it's my fault. Personally, I've implemented several progress percentage algorithms and while I often can't get the timing to be smooth through all stages of an operation, at least they always move forward. In fact, I think you'd have to work extra hard to make them move backwards.