A few years ago, I wrote a small sketch to record 4000 samples with a 25 µs resolution, starting from either a rising or falling edge. The samples were bitmapped into an array of 500 bytes.
Only after the recording was complete did I transmit the array to a Python program to plot the recorded levels. This was to avoid any slowdown issues that can occur when trying to perform the entire process in real time.
This is the discussion (each small division is 1 ms, each large division 10 ms)
The worst case I’ve seen is a bounce train of about 55 ms when inserting a wire into a breadboard.