Есть более простой сниппет «повторять до успеха»?
Попробуйте такой метод (нет возможности проверить). На вход поддается делегат, который необходимо выполнить.void UntilSuccess(Action action) {
  if (action == null)
    throw new ArgumentNullException();

  while (true) {
      try
      {
         action.Invoke();
         break;
      }
      catch { Thread.Sleep(300); }
  }
}

// Использовать так:
UntilSuccess(() => File.WriteAllText(@"C:\\serv1.txt", "text"));
а если в рекурсию?
типа private void writeText(){
  try
      {
         File.WriteAllText(@"C:\\serv1.txt", "text");
      }
      catch (Exception)
      {
         Thread.Sleep(300);
         writeText();
      }
}
И просто в коде вызвать  writeText();