FSM default state funzt nicht

Hallo ich habe mir ne simple state machine zusammen gebaut.
Habe jedoch Probleme mit dem default state.

2 states:

State On = State(ledOn);
State Off = State(shuttingDown, ledOff, NULL);

default state soll Off sein:

FiniteStateMachine stateMachine = FiniteStateMachine(Off);

im loop wird ein Taster abgefragt:

void checkTaster()
{
	int val = digitalRead(TASTER_PIN);

	if(val == lastTasterValue) return;

	if(val == LOW) // release button
	{
		if(stateMachine.isInState(On)) switchOff();
		else if(stateMachine.isInState(Off)) switchOn();
	}

	lastTasterValue = val;
}

und hier dann die handler:

void switchOn()
{
	Serial.println("switchOn");
	stateMachine.transitionTo(On);
	stateMachine.update();
}

void switchOff()
{
	Serial.println("switchOff");
	stateMachine.transitionTo(Off);
	stateMachine.update();
}

void ledOn()
{
	Serial.write("on");

	digitalWrite(RING_LED_PIN, HIGH);
}

void shuttingDown()
{
	Serial.write("closing..");

	//TODO: blinken
	digitalWrite(RING_LED_PIN, HIGH);

	delay(3000);
}

void ledOff()
{
	Serial.write("off");

	digitalWrite(RING_LED_PIN, LOW);
}

Auf dem Serial wird leider folgendes ausgegeben:
Nach dem ersten drücken der Taste:

switchOn
closing..

Nach dem zweiten drücken:

switchOn
on

Nach dem drittenb drücken:

switchOff
closing..
off

beim ersten drücken ist für mich nicht verständlich, warum switchOn() aufgerufen wird (richtig), aber dann clossing.. ausgegeben wird...

Kann mir da jemand helfen?
Ist das ein Bug in der FSM library?

Vielen Dank schonmal