Это не полностью решает описанную вами проблему, но…
Если большинство этих спамных/подозрительных пользователей имеют одинаковые показатели, о которых вы упоминали здесь:
то не рассматривали ли вы возможность изменения значения по умолчанию для настройки clean_up_inactive_users_after_days?
По умолчанию она установлена на 2 года, если её не изменить, но я не вижу ничего плохого в том, чтобы значительно уменьшить этот срок.
Она удаляет только пользователей с 0 постами и 0 временем чтения.
Установка значения, например, на 2–3 недели, вполне разумна. Любой, кто зарегистрировался на сайте Discourse и за 2–3 недели не опубликовал ни одного сообщения и не потратил ни секунды на чтение, очевидно, не является реальным человеком, которого вы хотите видеть в своём сообществе.
Даже если это реальный человек, 2–3 недели — это приемлемый срок для удаления его аккаунта, поскольку он, вероятно, потерял интерес. Поэтому нормально, что ему придётся пройти процесс регистрации ещё раз, если он действительно заинтересован.