Garde anti double-démarrage (guard !isRunning, session == nil) pour éviter la cascade de HKLiveWorkoutBuilder en Error(7) quand on retape l'activité. Reset session/builder à nil après échec, fin et erreur de séance pour permettre une nouvelle tentative propre. Le statusMessage d'erreur reste donc visible sur le picker. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>