Não tenho certeza se estou apontando algo óbvio, mas a primeira maneira é criar dois loops que são executados para sempre, enquanto o segundo é criar um loop infinito que cria loops infinitos, então você vai acabar com um número cada vez maior de loops infinitos. Ele cria um loop infinito, executa o dwm e cria outro loop infinito - o primeiro loop infinito não parou. Cada passagem fará outro loop de status do dwm, mesmo que os outros já estejam em execução ( while true
os manterá rodando indefinidamente)