SF: opportunistically try to present the next vsync on early offset

When SF changes from "late" vsync configuration to "early", it
might skip a frame if the work duration is longer than the next vsync.
This in turn causes jank on apps as SF skips a vsync, which will make
present the app buffer a vsync later.

Bug: 273702768
Test: manual
Test: presubmit
Change-Id: I3e3ab6a457beaecef9c2be529a53ad40f540e373
9 files changed