I haven't tested it but doesn't the timeout get cleared too easily because of the touchmove listener?