JSF @SessionScoped Bean com JMS: uma questão arquitetural

Gostaria de implementar uma barra de progresso para alguns processamentos que minha aplicação pode fazer em segundo plano. Só que eu gostaria que essa barra de progresso fosse visível a todos os usuários da aplicação simultaneamente, para que eles tomem ciência de que uma operação longa está sendo realizada e que alguns serviços não estarão disponíveis enquanto isso. Para tanto montei a seguinte arquitetura:

o bean JSF chama um método no meu bean EJB, que sabendo que o serviço requisitado é um processamento em segundo plano, envia uma mensagem assíncrona para um tópico JMS, cujo listener captura a mensagem e enfilera a requisição (apenas um processamento de segundo plano é executado por vez). Em paralelo, um outro bean ejb (singleton), vai checando a fila e executando as requisições. À medida que a requisição é executada, o executor vai transmitindo mensagens do status da operação ("10% concluído, 20% concluído, etc) para um outro tópico JMS, cujo listener é um bean JSF com escopo de sessão. Ele recebe as mensagens normalmente e armazena o status da operação recebido num atributo que é acessado no facelet por uma progress bar do primefaces, que, através de ajax, deveria periodicamente acessar o status da operação (no bean jsf de sessão). Só que ele só acessa a informação depois que o processamento é concluído, e a barra de progresso não mostra a evolução da operação.

Não sei o que pode estar errado, penso que possa haver algum impedimento em ter um bean JSF de sessão que implementa a interface MessageListener (JMS).

Agradeço qualquer ajuda