I am doing this at the end of my on_release function to reset the state of the pressed keys:
keyboard._pressed_events.clear()
Thank you for posting and identifying the problem, OP! This was driving me crazy.