Problema en rutina void loop() y libreria capsense

El problema es que solo consideras 2 estados encendido y apagado, tendrías que considerar uno o dos estados intermedios (encendiendo/apagando) en los cuales ejecutarias los tonos. Para ello, yo modificaría tu código y utilizaría una máquina de estados:

byte estado = 0;

void loop()                    
{      

  long total1;

  switch(estado)
  {
  case 0:  // Apagado
    total1 =  cs_4_2.capSense(100); 
    if(total1 > umbral)
      estado++;  // Pasamos a encendiendo
    break;

  case 1:  // Encendiendo
    total1 =  cs_4_2.capSense(100); 
    if(total1 < umbral)  // Esperamos a que se "suelte el interruptor"
    {
      EjecutaTono();  // Función en la que se ejecutaría el tono de encendido
      digitalWrite(13, HIGH);
      estado++;
    }
    break;

  case 2:  // Encendido
    total1 =  cs_4_2.capSense(100); 
    if(total1 > umbral)
      estado++;  // Pasamos a apagando
    break;

  case 1:  // Apagando
    total1 =  cs_4_2.capSense(100); 
    if(total1 < umbral)  // Esperamos a que se "suelte el interruptor"
    {
      EjecutaTono();  // Función en la que se ejecutaría el tono de apagado
      digitalWrite(13, LOW);
      estado=0;
    }
    break;

  default:  // Caso por defecto
    estado=0;
  }
}

(Cógelo como idea, está sin probar ;))