Is 3D viewport render time exposed in python?
As far as I know this is implemented in C and no accessible with the python API. 

However you can probably create a handler for scene_update which:


iterates over all areas and check if area type is 3d view
if so check if the view type is rendered
and if it is start a timer and use some approximation algorithm to record the time
however if the view type is not rendered or there are no 3d views and the timer is running, stop the timer.


Read more:
Render Time Estimation Addon

Cycles Time Estimation