How do I switch between cameras?

Good morning/afternoon/evening everyone,

I know you guys are probably sick of hearing this but nothing I found helped. I"ve been working on an experimental horror game where a face is meant to appear before the camera. So far I’ve tried having two cameras and an object I want to show up. The idea is that the object is of the water layer and while the culling mask of the main camera can’t see the water layer, the second camera can. So when the jumpscare happens, the camera switches from the main cam to the second one. So far, though, the object’s texture just fills the screen. this is what I want to happen, but I want it to happen for a short period of time after a delay, not from the first frame. Looking at each camera, the camera set to render the jumpscare object is disabled, and the main camera is enabled. This is what I want, but either the player is seeing through the second camera despite it being disabled or the main camera is picking up the object. That’s bad. Does anyone have the solution to this?

Script:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// cam1 is the main camera, cam2 is the second camera.
public class HallucinateControl : MonoBehaviour
{
    public GameObject cam1;
    public GameObject cam2;
    public float wait;
    public float forlong;
    public AudioSource JumpScare1;
    



    void Start()
    {
        cam1.SetActive(true);
        cam2.SetActive(false);
      

    }

      void Update()
    {
 
      
        new WaitForSeconds(wait);
        cam1.SetActive(false);
        cam2.SetActive(true);
       
        new WaitForSeconds(forlong);
        cam1.SetActive(false);
        cam2.SetActive(true);
        

    }

Use a Coroutine like this

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NextBackButton : MonoBehaviour
{
    private bool mainCameraActive;

    public Camera mainCamera;
    public Camera auxCamera;

    // Start is called before the first frame update
    void Start()
    {
        StartCoroutine("swapCameras", 3);
    }

    IEnumerator swapCameras(int waitTime)
    {
        while (true)
        {
            if (mainCameraActive)
            {
                mainCameraActive = false;
                mainCamera.gameObject.SetActive(true);
                auxCamera.gameObject.SetActive(false);
            }
            else
            {
                mainCameraActive = true;
                mainCamera.gameObject.SetActive(false);
                auxCamera.gameObject.SetActive(true);
            }
            yield return new WaitForSeconds(waitTime);
        }
    }
}