Я полагаю, что ваша путаница связана с тем, что вы дважды вызывали «LogHandler + = ...», но получаете только два выхода. Обратите внимание, что вызываемая вами функция Process не выполняет цикл, в котором используется LogHandler! Вот почему вы не получаете ожидаемых результатов.
Кроме того, модель, которую вы используете, просто слегка отключена. Вместо непосредственного использования делегата лучше создать событие и подписаться на него.
public delegate void LogHandler(string message);
public event LogHandler OnLog;
...
OnLog += ...