Polling ist hier die falsche Methode. Mit der erreichst du nie eine ordentliche Reaktionszeit bzw mögliche Tastenfrequenz.
Ein "selbst entwickelter Gamecontroller" basiert ziemlich wahrscheinlich auf einem Mikrocontroller, richtig?
Der Button sollte interruptgetrieben abgefragt werden. Dann sollte der Taster in der Beschaltung schon etwas entprellt sein (ein kleines RC, z.b.). In deiner ISR kannst du jetzt einfach den Interrupt selbst für eine kurze Zeit sperren um nur auf die erste Flanke zu reagieren. Eine Prellung selbst dauert meist 5-15ms. Mit 50ms bist du auf der sicheren Seite und hast trotzdem noch relativ gute Reaktionen auf Nutzereingabe.
Ist der Controller an einen PC angeschlossen? Gibt es hier eine Software? Wenn dein Controller als HID GameController angebunden ist bekommst du in Windows in der Message Loop deine Events.