Fix gesture end detection with nested elements

Fixed an issue where child elements calling stopPropagation() on pointer events could prevent drag and press gestures from ending properly. Gesture end listeners now run in the capture phase to ensure they always fire, maintaining consistent behavior across drag and press interactions.