if structure takes too much time

It's probably because of this:

 //Cas phares de détresse
 else if (digitalRead(PharesDetresse) == HIGH)
 {
  analogWrite(LEDpin, 255);
  delay (100);
  analogWrite(LEDpin, 25);
  delay (800);
 }

If the pin is HIGH, the statement delays 900ms which is "(almost a second approx)".

Pete