Il s'avère que le problème est dans la gemme mysql2. Il fait ce truc vraiment génial ...
Essentiellement, il remplace une valeur wait_timeout par défaut d'environ 25 jours (2147483 s) qui lui est propre comme valeur wait_timeout (probablement la version de session de wait_timeout) utilisée par la connexion, remplaçant essentiellement tout paramètre que nous spécifions sur le serveur.
En définissant une wait_timeout :valeur dans config/database.yml, le délai d'attente fonctionne comme il se doit. Cependant, lorsque la connexion est interrompue, vous obtenez des erreurs "le serveur mysql est parti".
En spécifiant un accompagnement reconnect :true dans database.yml, chaque fois que la connexion est réutilisée, le minuteur de la connexion est réinitialisé, MAIS après cela, il utilise directement le paramètre GLOBAL wait_timeout de mysql
J'espère que cela aide quelqu'un