Ну, это ожидаемое поведение Timeout
.Если блок занимает слишком много времени, его выполнение прекращается и выдается исключение.
Возможно, вы захотите перехватить исключение и обработать его соответствующим образом:
require 'timeout'
begin
status = Timeout::timeout(5) {
# Something that should be interrupted if it takes too much time...
}
rescue Timeout::Error
puts 'That took too long, exiting...'
end