je me réponds à moi-même pour les archives.
C'était bien set_active() qu'il fallait utiliser, mais je m'y prenais mal. Je faisais l'appel monBouton.set_active(true) dans la même méthode que celle qui est appelée lors du signal bouton cliqué (signal_clicked). Or, l'appel à set_active(), lorsque celui-ci provoque un changement d'état du bouton, entraine un déclenchement de ce signal_clicked. Du coup, j'entrais dans une récursivité infinie => seg fault.
Pour pallier à ça, j'ai simplement utilisé une méthode en amont, qui fait appel à set_active(), ce qui déclenche l'appel de la fonction d'action du bouton. Pas de récursivité, pas de plantage, et tout va pour le mieux dans le meilleur des mondes possible.