Fix restart state loop

Using the special state maker for itself which causes loops on timeout on timeout. 
How do we figure out if a timeout happened? I'm probably forgetting something, but a single new session event doesn't seem like enough information to know that a timeout happened.