You could also initialize the delay timer before starting a render, so you’re timing render+update and then burning off any excess in the sync loop.
Not sure I follow, but we both may be saying the same thing.
I was just drawing a distiction between
loop # render vf := 1 delay := vf # update loop vf := delay if vf != 0 then again again
and
loop vf := 1 delay := vf # render # update loop vf := delay if vf != 0 then again again