Display a stereoscopic scene in Frame Sequential technology

I’m working on a project to display a stereoscopic scene in Frame Sequential technology.

Due to large differences in the projection system compared to the standard approach (with one active 3D display) - we try to implement the stereoscopic display technique ourselves, the projection system consists of 6 projectors configured in Nvidia Mosaic mode.
However, we have a problem.
We perform the projection technique through software page flipping - we switch cameras for both eyes with a general frequency of 60 Hz (30 Hz per eye) according to the algorithm presented below:

    void Start()
    {
        StartCoroutine(BlinkCamsSave());
        Application.targetFrameRate = (int)refreshRate;
    }

    IEnumerator BlinkCamsSave()
    {
        while (blinkingEnabled)
        {
            rightcams = Time.time % ((1 / refreshRate) * 2f) > (1 / refreshRate);

            if (rightcams)
            {
                foreach (Transform cam in leftCameras)
                {
                    cam.gameObject.SetActive(true);
                }
                foreach (Transform cam in rightCameras)
                {
                    cam.gameObject.SetActive(false);
                }
            }
            else
            {
                foreach (Transform cam in leftCameras)
                {
                    cam.gameObject.SetActive(false);
                }
                foreach (Transform cam in rightCameras)
                {
                    cam.gameObject.SetActive(true);
                }
            }
            yield return null;
        }
    }

During the projection, however, there is a problem: there are random delays in displaying frames for the appropriate eyes (for example, displaying the image for the right eye for 20 ms causes that after 16.7 ms, the eye is switched to the left eye on the projector, which in turn results in the fact that for the remaining 3.3 ms, the image for the right eye is incorrectly displayed in the left eye). The situation described results in an unpleasant effect of image shake, together with the loss of stereoscopic effects.

The algorithm presented above was tested in various places on the Unity main loop (according to Lifecycle Flowchart), among others as coroutine, or in FixedUpdate (the frequency of physics was also increased). These activities, however, did not bring the expected results.
Is there any way to control the display times of consecutive picture frames (more specifically - setting this time as an invariant)?

Hello, can you test this code?

IEnumerator BlinkCamsSave()
{
    while(blinkingEnabled)
    {
        foreach (Transform cam in leftCameras)
        {
            cam.gameObject.SetActive(rightcams);
        }
        foreach (Transform cam in rightCameras)
        {
            cam.gameObject.SetActive(!rightcams);
        }

        yield return new WaitForSecondsRealtime(frequence);//time that will stop untill next call i.e. 0.5f waits half second
    }
}