Atualizar <h:outputLabel> dinamicamente

Estou com uma problema com jsf e gostaria da ajuda de vocês.

Situação: Através de uma ação em um <h:commandButton> é disparado uma processo de execução que demora “N” minutos. Dentro desse processo eu tenho alguns status: Inicial, Leitura e Finalizado.

Eu gostaria de atualizar um <h:outputLabel> dinamicamente na tela mostrando qual o status do processo.
ps. não gostaria de usar <p:poll> do prime.

A minha solução atual: Pensei em utilizar uma Thread (no managerBean) que iria ficar capturando o status do processo e fazendo o set de um atributo do managerBean.

Códigos:

Pagina xhtml:
<h:commandButton value="Iniciar" action="#{myBean.executar}" /> <h:outputLabel id="status" value="#{myBean.statusValidation}" />

Bean:
[code]
@ManagedBean(name = “myBean”)
@SessionScoped
public class myBean {

private UpdateLabel update = new UpdateLabel();
private String statusValidation = null;

public String getStatusValidation() {
	return statusValidation;
}

public void setStatusValidation(String statusValidation) {
	this.statusValidation = statusValidation;
}

public String executar() {

	Thread UpdateLabel = new Thread(update);
	UpdateLabel.start();

	Process process = new Process();
	process.executeProcess();
	
	return "";
}

private class UpdateLabel implements Runnable {

	public void run() {

		while (true) {
			try {
				setStatusValidation(Process.getStatus());
				Thread.sleep(2 * 1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}

	}
}

}
[/code]

Alguém poderia dar uma ajuda?
Estou fazendo a coisa certo? Caso não, o que posso fazer diferente?

Uma sugestão é usar o componente p:socket do Primefaces. Veja como em: