На button1_Click я вызываю метод DoStuff ();
DoStuff() { //how to make a loop within this method that pauses when I click button2 ? SomeCodeToLoop(); }
Переместите этот код doStuff в другой поток.Когда вы нажимаете кнопку 2, либо приостанавливаете поток, либо используете некоторые события , чтобы сигнализировать потоку о том, что он должен подать сигнал.