Problème résolu en mettant le fin de course en haut de l'axe.
Je ne sais pas pour les autres versions de GRBL, mais d'après ce que j'ai compris pour la 0.9, le fin de course est utilisé avant tout comme sécurité en fin d'axe et n'est pas prévu pour fonctionner tant que celui-ci est appuyé.
Mon bootcode en mouvement absolu (homing + retour à la vraie position 0) :
Mon bootcode en mouvement relatif :