You say that Windows Installers are almost always wrong with their time remaining calculations. It mostly takes less time than predicted. This will give the user the feeling that his system is very fast, or that the installer is very fast
But could the installer have a constant 'initial time per byte' to calculate the time remaining, then install the first file, measuring the time that it costed. The number of bytes divided by the time returns the new 'time per byte', which is more accurate. Use this for every file, and, as the installation progresses, the time is more precise.
Just an idea. If you gonna tell me that for a small file the 'time per byte' is lower than for a big file, then ignore me please.