Java e uso de CPU

Estou desenvolvendo um aplicativo em Java que executa um processo externo (ele roda um programa escrito em Clipper 5). Pra manter esse tipo de aplicação (em Clipper) rodando sobre o win2k e winXP é necessário usar de bibliotecas que permitam o YIELD para liberar o uso de CPU.

A aplicação em Clipper rodando sozinha não consome além 15% de CPU (monitorado pelo Gerenciador de Tarefas, guia Desempenho). O programa roda normalzinho.

Quando executado pela interface do aplicativo em Java (Swing), o aplicativo também entra e permanece normal (entre 1% e 5% de uso de CPU). Quando a opção que executa o processo externo é chamada, o uso de CPU sobe a 100%…; o processo externo termina (eu sei porque capturo o stream do processo e o mapeio com pipes para um JTextArea) e uso de CPU continua a 100% e não baixa!!

Um pedaço do código que executa o processo externo é esse:

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(cmd, null, fpath);
                  
StreamConsumer errConsumer = 
            new StreamConsumer(proc.getErrorStream(), "err", true);

StreamConsumer outConsumer = 
           new StreamConsumer(proc.getInputStream(), ">", false);
                  
errConsumer.start();
outConsumer.start();
                  
proc.waitFor();

Eu não sei bem o que fazer.
Logo após o proc.waitFor() eu coloquei um System.gc(). Ele baixa o consumo de 100% para cerca 50% quando o processo externo termina…; mas sobe de novo para 100% em seguida e não baixa mais!

Alguém tem alguma idéia do que possa ser?
Obrigado.