原です。

> まつもと ゆきひろです.

> とかいってるあいだに作っちゃいました.^^;;;

うわっと。(^^

と、いうことは、最初のように

class Timeout
  def initialize(sec, msg = "timeout")
    @parent = Thread.current
    @timer = Thread.start {
      sleep(sec)
      @parent.raise TimeoutError, msg
    }
  end
  def off
    if @timer.status
      Thread.kill @timer
      @timer = nil
    end
  end
end

というのも可能になるわけですね。