As noted on the web page
To count build estimates, TeamCity considers previous build durations and parameters of the build agent on which the build runs.
I'd like to propose calculating estimation using checkpoints. TC can store checkpoint and its time and calculate remain time using this information.
For instance previous build times are:
checkpoint 1 (10min)
checkpoint 2 (1min)
checkpoint 3 (20min)
When new build starts estimations are following:
checkpoint 1 (remain time 1.5h)
checkpoint 2 (remain time 1.3h)
checkpoint 3 (remain time 20min)
If checkpoint 2 will be done in 15minutes, time for checkpoint 3 will be calculated correctly. Currently its time is calculated based on overal build time.