I'm not sure I follow. You aren't canceling it if you go beyond 20, you are canceling if starts beyond 20. That's the bezel part.

Touches began is only called once. After that, super takes over. It's pretty much the exact implementation I did for `MMBezelPanGestureRecognizer`