First I would read all button input at once. Debounce and then decide what to do.

This is like a state machine coding and you will not loose any keypress, especially if it is interrupt driven. Or...