Какое решение задачи по циклам будет правильным?
1. Определяемся с тем, что от нас хотят. Требования можно представить в виде такого псевдокода :)
повторять всегда {
   сообщение = прочитать();
   если сообщение = "EXIT" то выйти;
   сообщение2 = прочитать();
   если сообщение2 = "EXIT" то выйти;
   количество_повторений = прочитать_число(сообщение2);
   повторять количество_повторений раз {
     напечатать(сообщение);
   }
}

2. Переводим буквально на C#:
while(true) {
  Console.WriteLine("Введите сообщение");
  var message = Console.ReadLine();
  if (message == "EXIT") {
    return;
  }
  Console.WriteLine("Введите количество повторений");
  var message2 = Console.ReadLine();
  if (message == "EXIT") {
    return;
  }
  var count = int.Parse(message2); // по хорошему, надо бы как-нибудь обработать, если пользователь ввёл не число. В таком виде программа просто упадёт.
  for(var i=0; i<count; i++) {
    Console.WriteLine(message);
  }
}
Очень неоднозначное условие.

Напишите простейшую программу
Что подразумевается под простейшей? Возможно, эта фраза просто подчёркивает вашу глупость...

заданное пользователем сообщение, заданное пользователем количество раз
Непонятно, как именно пользователь задаёт эти параметры. Похоже, что речь идёт о stdin.

В итоге можно предположить такую программу:
using System;
class HelloWorld {
    
    static string ReadInput() {
        var input = Console.ReadLine();
        if(input=="EXIT") throw new Exception(); // ну или просто выход
        return input;
    }
        
    static (string,int) GetMessage() => (ReadInput(), Convert.ToInt32(ReadInput()));
    
    static void Main() {
        string message;
        int i,n;
        while(true) {
            (message, n) = GetMessage();
            for(i=0;i<n;i++) Console.WriteLine(message );
        }
    }
}