Salut,
Au contraire, Devise c'est la référence pour tous types d'authentification. C'est vraiment une gem formidable, et la solution la plus simple que tu pourras trouver.
Suis les quelques guides fournis sur le wiki github. La première fois ça peut faire un peu peur, mais après c'est un gain de temps phénoménal.
Dans ton cas, il te faut 2 entités à générer. Tu commences par générer les Users, et, ensuite, les Admins, en suivant le guide Devise pour la création de comptes admin. Si tes deux modèles sont quasiment identiques, tu peux éventuellement ne faire qu'une migration pour ajouter un champ booléen "isAdmin" aux Users.
Pour bloquer toutes les routes /admin ainsi que toutes les actions new et update, tu as des tas de possibilité. Sans ajouter une surcouche supplémentaire avec une gestion poussée des permissions (avec une gem type Pundit ou CanCanCan), la solution la plus simple qui me vient en tête, c'est d'ajouter un before_action en :only => [new, update] dans les contrôleurs des ressources concernées (ou le contrôleur de l'application même si toutes les ressources sont concernées) qui vérifie si l'user est admin (et retourne une erreur / redirige si c'est pas le cas).
Enfin, j'ai jamais utilisé Rails_admin donc je sais pas s'il le fait, mais la gem équivalente ActiveAdmin se charge de te créer et configurer l'entité AdminUsers avec Devise si elle n'existe pas déjà lorsque tu bootstrap la gem.