Since Timeout::Error is not a subclass of StandardError, you’ll need to do something like this to catch the exception:
rescue StandardError, Timeout::Error => e
Not too much fun, but it certainly didn’t make me as angry as the guy I linked to above ;-)