Posso fare qualche considerazione in generale.
Le funzioni delle interruzioni sono un poco particolari, e in generale non accettano parametri.
Se devi gestire una variabile puoi usarne una globale ma devi essere certo che solo una funzione alla volta acceda a questa. Se hai un solo thread/funzione non è un problema.
In maniera più elegante puoi fare una funzione di incremento che richiami in quelle delle interruzioni, in maniera da accedere alla variabile in maniera "ordinata". Python non supporta variabili private per cui l'utilizzo della funzione aiuta fino ad un certo punto ma ordina le idee.
Per il ritardo dopo la lettura potresti usar time.sleep(0.02)
Normalmente qualche decina di ms basta
dopo la chiamata dell'interrupt puoi aspettare 0.02 o più secondi e poi leggere il pulsante. se è ancora attivo è un evento valido.
Non sono certo di come Python gestisca gli interrupt, ma credo che mascheri gli stessi fino a che non si esca dalla relativa funzione dell'interrupt stesso.
All'uscita dell'interrupt bisogna vedere se viene mantenuto memoria di un eventuale evento o meno come nelle MCU, ma è una specifica che bisogna leggere sul manuale o fare qualche prova.
Ho programmato RPi in Python ma solo per semplici esempi. Ora sto usando il C/C++ ma sono a metà del corso...
Saluti,
Mauro