Máquina de estado de avance automático con sin estado

He estado experimentando con Stateless (HSM en C #) ( https://code.google.com/p/stateless/ ) últimamente y he encontrado algo que no estoy muy seguro de cómo lograrlo.

Digamos que tengo los siguientes estados:

  • Comienzo.

  • Conectar

  • Leer

  • Terminar

Lo que estoy tratando de lograr es: cuando se establezca la conexión TCP (en el estado de Conexión), avance al estado de Lectura. O, si falla, avance al estado Finalizar (donde puede volver al estado Conectar e intente una nueva conexión después de un período de tiempo de espera).

¿Cómo puedo lograr esta función de avance automático utilizando Stateless, ya que disparar disparos desde dentro de los estados puede causar una excepción de desbordamiento de stack?

Aclamaciones

Dado que no encontré una solución nativa en Stateless para hacer lo que pedí, terminé envolviendo el .Fire (disparador) en una tarea

Task.Start(() => _stateMachine.Fire(trigger)); 

Al hacerlo, significa que la máquina de estado no avanza por sí misma, sino que está más bien avanzada por una fuente externa, que resuelve la excepción SO.