I also never use Tap.
I like to create an invisible sprite on every touch start (and then destroy it when that touch ends). The sprite object has instance variables to track where the touch started, how many ticks it has been in touch, objectUID it started on, etc.
then it is easy to tell if it was a tap, or a swipe, and helps make sense of multi-touches...
For buttons, I don't execute the button code until the touch end. That way if you change your mind and slide the touch off the button, it doesn't execute - which is more intuitive and consistent with other UIs.