Attente du clique d'un bouton

Selon ton schéma, tu devrais mettrepinMode(btnPin, INPUT_PULLUP);et lire ceci
Avec ça, le bouton appuyé renvoie un LOW, donc il faut changerwhile(digitalRead(btnPin) == HIGH)

Ceci dit, je ne comprends pas ce que tu veux dire ici

soit la led reste allumée le temps de l'input du capteur (en envoyant les messages de test en boucle) soit elle reste allumé jusqu’à ce que j'approche ma main (hors du rayon de vision du capteur)

Ici, tu allumes la led lorsque le capteur capte:

  if(pirValue == 1){
    digitalWrite(ledPin, HIGH);

et restera allumée tant que le bouton n'est pas enfoncé.