RTC is good as it is, that only takes time to probe so often.Debounce at 100 ms means you have to slow down your presses to less than 10 a second, and hold the button for that time for a press to register. Most humans can't press that fast so that shouldn't be a problem :-) If you do 3-4 presses a second you're pretty fast already.
Rolled back the RTC changes. Hope it work - it means I can't test any more. This should take care of the randomness issue (which is totally bizarre anyway).That's it for tonight from me. Have to get up really early tomorrow.
When you got some results please copy/paste the messages you get on the Serial monitor and post it back here. Then this afternoon when I'm done with my tour I'll see them and hope to gain some clues about what's really going on.The simulator you suggested is just that, a simulator, it's not the real thing. Maybe nice for basic practice, I don't see any use in debugging this kind of weird behaviour which can very well turn out to be some odd interaction with your hardware, and that can't be simulated without knowing exactly what's going on in the first place.The weirdest part is still the difference in behaviour between the two buttons.And then I suddenly think of yet another test: switching the hour and minute buttons. The here attached sketch has no print statements or slowdown, it just swapped out pin definitions for the hour and minute button (so to set the minute, press the hour button, and the other way around). See what happens. Does the hour advance much more than the minute now? Or do you see no change in this behaviour?Finally I have still no clue what could possibly cause the randomness when I switched to the internal timekeeping. That part also just doesn't make sense to me.
And another one to try and figure out what's really going on under the hood - with some extra print statements. I'd like to see the output (especially the part where the jumps happen), to get a better idea of where the underlying problem really is.