Timeout only works for a noise free line in the idle state. If the line is in the opposite state timeout is skipped. Likewise if the line has noise, that will be seen as data and never get to the end of the timeout period.

HTH
BrianT