Thank you for the tips! I have been reading through your links. I think I tested your debounce before, and thought that library was actually it. I don't really know where that library came from honestly.
I like the use of bool
int old = 0;
This is just from what I saw others doing, I was questioning what the purpose was. The state list options you gave me were perfect. I will eventually make the current state int store in EEProm.
My guess was that this debounce library was doing something odd, so I played with the MS....
debouncer1.interval(50);
Ranging from 5 to 200 ms values had no change in state change behavior. However, when I tried another debounce library I wasn't even getting an input signal. So I came here to see if there was something glaring that was off.
I am going to test this again, with a hodge podge from what was posted, to see if there is a hardware issue or if it's purely software.