Shouldn't be hibernating here.
Clarify cancel_timeout is just a side effect.
Match TRef on IDLE_TIMEOUT_MSG with the idle_tref in State record.