Ich könnte vermuten, dass es daran liegt dass du mqttClient() und mqttSubscriber() in deiner State-Maschine aufrufst. Sprich wenn du in Schritt 1 bist wird mqttClient() nicht mehr aufgerufen.
Besser die beiden Aufrufe außerhalb deiner CASE-Anweisung aufrufen und nur die Parameter dort...