require 'timeout'
begin
 f = Fiber.new do
  timeout(1) do
   Fiber.yield
  end
 end
rescue
 p 1
end
begin
 f.resume
 sleep (2)
 f.resume
rescue
end

上記のコードで1が出力されるはずと期待していたら例外処理が補足されずに終了してしまいました。
sleep(2)でexecution expiredになるのは分かるんですが、何故補足されないんでしょうか?
Ruby2.0.0と2.1.4で試しましたが結果は同じでした。