while сильно загружал процессор
Console.WriteLine($"{(clientSocket.RemoteEndPoint as IPEndPoint).Address} connected");
то есть Thread.Sleep вызывается только после того, как полностью завершится рисование в Mech.Draw. Разве нет?
AppDomain.CurrentDomain.BaseDirectory , Directory.GetCurrentDirectory() или Assembly.GetEntryAssembly().Location не особо верно.