I don't think that'll work well, because rendering the frames is not 100% of the computation time. However, I was thinking about it and this might work (I need to try it, should be easy):
Keep two time records, "virtual" time and "real" time. The former would be computed by adding the amount of time that a frame should take every frame. The latter would be computed by measurement. If the latter gets too far behind the former, stop rendering frames until it catches up (or a threshold is reached). Thoughts?