Not sure if this is worth any effort, but I noticed that while doing a big checksum check against a remote and a couple of transfers being done, the -P progress rate continues to drop as a rate over the entire session rather than only being calculated while transfers are actually in progress.
Trivial, but I think if it's feasible to keep another timer counter then it should show transfer rate only while transferring?