Pause Regressing slider only once when it surpasses a certain value

hello, im making a gaugemeter for my game, its a regressing slider (max value =100, every second i substact 3)
when you do certain actions the meter fills, and whenever it surpasses one of 3 “checkpoints” (at 33, 66 and 100) i want it to stop regressing for 2 seconds.
i tried making it this way but whenever i surpass 33, its stuck paused. this is because playergauge.value>= 33 always returns true after that, but i dont know how to fix this, help anyone?

   bool pausedP = false;
   bool pausedE = false;
   public float pauseDuration =2f;
   private void Update()
    {
        if (!pausedE)
        {

            if (enemygauge.value == 100|| enemygauge.value >= 66 || enemygauge.value >= 33) { StartCoroutine(wait("enemy")); pausedE = true; }
            else if (enemygauge.value > 0) { enemygauge.value -= 3 * Time.deltaTime; }
        }


        if (!pausedP)
        {

            if (playergauge.value == 100 || playergauge.value >= 66 || playergauge.value >= 33) { StartCoroutine(wait("player")); pausedP = true; }
            else if (playergauge.value > 0) { playergauge.value -= 3 * Time.deltaTime; }
        }


    }
    IEnumerator wait(string whopaused)
    {
        yield return new WaitForSeconds(pauseDuration);
        if(whopaused == "player") { pausedP = false; }
        else if (whopaused == "enemy") { pausedE = false; }
    }

Draw yourself a flowchart… I think you need an extra variable saying “I am stopped counting now” for some amount of time.

Every time you count down 3 units, check if you transition one of your boundary values:

var oldValue = currentValue;

currentValue -= 3;

if ((currentValue <= boundary) && (oldValue > boundary))
{
  suspendCountdown = 2.0f;
}

Then whenever suspendCountdown is nonzero, count it down instead of counting your normal one-second interval down.

ALSO: highly recommend breaking ALL this apart from your slider and getting it working with Debug.Log() outputs and simple float variables.

Once it is working, only at the very end of the process, update the slider with the value. It will make the code WAAAAAAY cleaner.