You can get very good estimates for how long a task is going to take, if that is important.  But, given the situation where computers fail in weird, very difficult to diagnose ways and that doesn't get to the top of the stack to address, good progress estimates are unlikely to be justified.  We get what we pay for.