これ、一見してtime_tのbit数の問題と紐づくように感じられるかと思うんですが、rubyのTime型の内部表現はどうやらそうではないっぽいんですよね。
以下のようなコードが普通に評価できるわけで。
>>> Time.new(5000000000000000)
5000000000000000-01-01 00:00:00 +0900
>>> Time.new(5000000000000000).to_i
157784759999937832748400
>>> Time.new(5000000000000000).year
5000000000000000
>>> Time.at(157784759999937832748400).year
5000000000000000