[corlib] Handle overflow correctly in Timer to avoid spinning. Fixes #8782

	* Timer.cs: Very long timers can lead to timeout values that are
	bigger than Int32.MaxValue, leading to a negative value and us
	spinning.