How to get actual rendering progress and estimation from render_stats python handler?
I know it's not the best, but the best I've been able to come up with is code that processes the console output:


Output gives you the render time of the last frame
Output tells you the frame number that was just rendered
You know how many frames are in the complete render, which you can pass to your program
You know the start time of the render


From the above, you can calculate the average render time per frame, which I've found after just a few minutes becomes a pretty stable value.  If the number of rendered objects per frame changes dramatically over time, then of course the average value will change, but given the average render time per frame, you can come up with:


Number of frames which were rendered - grab that from the console
Amount of time elapsed (Current time - Start time)
Current running average render time per frame
Frames left * average time/frame == Render time left


If you have multiple scenes within an animation, you can then also do per-scene calculations, along with the overall animation calculation.

Again, it's not the optimal solution, but it's pretty easy to put together, and it does an effective job of informing you how much time do you have to go before your animation is done.

I hope this helps.