kenwood120s:
The wait time needn't be huge. You think the buttons are pressed at the same time, the controller knows differently. You at least need to allow loop() to whiz round a bunch of times to see each time if the second button is pressed, before it decides to shift.Have you thought of a third, "go to neutral", button? Way simpler.
I would make it as simple as I could, so there were no extra buttons.