I was wondering if there's a way to change the behaviour of a pin mid program.
You can call pinMode() anytime you like. However, this doesn't achieve what you want.
(oldButtonReading != newButtonReading) {.....and then while that conditional is running, I don't want the arduino to be reading anything from button1. Is this possible? Could I change pinMode to OUTPUT or something just while it's in that if ()?
No. If you call digitalRead() on a pin defined as OUTPUT, the result will be whatever that pin's register is current set to.
What do you mean by "while that conditional is running"? If you are inside of the if-statement, then the if-statement won't be checked again.
Another option is that I could set up a little 5V relay or something to just break the connection but it'd be way easier to do something with the code.
That seems like a pretty expensive way to achieve something that could be done with a simple flag. Create a variable called "pinActive." Set it to 1 when you want to read from the pin and to 0 when you don't. Then change your if statement to:
if ((oldButtonReading != newButtonReading) && (pinActive == 1)) {{/code]