Esto está controlado por la configuración del sitio maximum session age de Discourse. Esa configuración tiene un valor predeterminado de 1440 horas. A menos que se establezca en un valor muy pequeño, no es una forma fiable de cerrar la sesión de los usuarios. Esto se debe a que establece la cantidad de tiempo que un usuario permanecerá conectado desde su última visita. Establecer maximum session age en un número muy pequeño de horas también podría causar molestias a los usuarios de tu sitio.
Creo que tu mejor opción sería cerrar la sesión de los usuarios en Discourse a través de la API cuando las membresías expiren. Hay un ejemplo de código sobre cómo hacerlo aquí: wp-discourse/lib/sso-provider/discourse-sso.php at main · discourse/wp-discourse · GitHub. Es posible que necesites la ayuda de un desarrollador para realizar una llamada a la API y cerrar la sesión de los usuarios en Discourse cuando su membresía expire.