Probablemente estás bloqueando el hilo principal, ¿al método pensar() dónde lo llamas? ¿Llamas a algo justo después que requiera mucho tiempo y no devuelva el control a Android? Si a Android no le devuelves el control no puede pintar el nuevo texto de la etiqueta por muchos setText que llames.
Si de verdad hay algo que tiene que pensar y lleva su tiempo, eso debería estar en una AsyncTask o en un hilo, y actualizar las etiquetas bien con el progress update de las asynctask o con un handler como haces.
P.D: Sobre el Runnable que has puesto, aunque funciona no tiene sentido meter dentro el runOnUiThread pues el Handler ya se ejecuta en el UI Thread o hilo principal. Vamos, que esto es lo mismo y es menos lioso:
Código:
new Handler().postDelayed(new Runnable() {
@override
public void run() {
responde();
}
}, 1000);