1.Yes. Probably want a while loop inside main loop:
void loop(){
coin_slot = digitalRead(coin_detector);Â // whatever you to detect coin was inserted
if (coin_slot ==1){Â // coin_slot is 1 when coin is accepted
 while (digitalRead (button_press)==HIGH){ // button_press makes the read return Low
 // hang out waiting for button press
 }
 // do button press action
}
}