Оказва се, че проблемът е в скъпоценния камък на mysql2. Прави това наистина страхотно нещо ...
По същество той замества собствената стойност на wait_timeout по подразбиране от около 25 дни (2147483s) като стойност на wait_timeout (вероятно версията на сесията на wait_timeout), която връзката използва, като по същество отменя всяка настройка, която посочим на сървъра.
Чрез задаване на wait_timeout:стойност в config/database.yml времето за изчакване работи както трябва. Когато връзката се прекъсне обаче, получавате грешки „сървърът mysql е изчезнал“.
Като посочите придружаващо превръзка:true опция в database.yml, всеки път, когато връзката се използва повторно, таймерът на връзката се нулира, НО след това използва настройката GLOBAL wait_timeout от mysql директно
Надявам се това да помогне на някого