Estamos usando Discourse con SSO y estamos creando usuarios a través de la API.
Aclaración: ¿Estás usando Discourse Connect o estás creando los usuarios manualmente?
Parece que estás haciendo más trabajo del necesario.
Usar Discourse Connect probablemente sea más fácil y luego puedes dejar que Discourse mismo encuentre un nombre de usuario único que se acerque a lo que sugieres.