Hooray! It works perfectly now. Thanks PaulS for the hint. I made the following changes:
boolean stateChanged = debouncer.update();
buttonValue = debouncer.read();
if (stateChanged && buttonValue == LOW)
{
digitalWrite(ledPin, HIGH);
Now it only registers a button press once per press and any presses occurring while the code is still in progress executing are ignored. Exactly what I needed.