Tal como tienes escrito el programa, y que conste que no lo he probado, no admite una nueva pulsación mientras la primera detectada siga activa, a 1. Sin embargo, cuando esta primera pulsación cambia a 0, libera la bandera para admitir otra pulsación.
Por tanto, como al principio de una pulsación hay muchos cambios de 0 a 1 y viceversa, si no tuvieras el retardo es probable que hiciera cosas raras.
Si puedes, pruébalo y ya nos contarás.
Un saludo