Fix: now the runner properly exits even if an AI doesn't exit