Finally updated to the new version. I get what you did, but it does not really work for a number of reasons:
1. OnPress should never be triggered unless the user actually pressed on something (treating OnPress differently breaks existing UI)
2. Breaks all scrolling lists, try scrolling a list, then running into an outside button - the list abruptly stops scrolling, or vice versa if dragging from an outer button onto a scrolling list
3. Does not solve the functionality of simply knowing when a click is canceled without writing lots of special-case code for an event that should be built in.
4. Does not solve the functionality of knowing when the user has "touched" an object on mobile devices (i.e. sweeping around their finger to collect gold coins) currently this only works if they first pressed down on something, not just arbitrarily moving their finger. Again, seems like pretty basic functionality.
Simply speaking, something like "OnHover" should also work on mobile devices and would solve all of these problems. Not sure why you don't allow hover events on mobile. Sure, there is no mouse pointer, but you could simply treat the users finger as the same thing as the mouse pointer.
Overall NGUI is a great library, and the code is good enough that it's easy to splice these things in there, just wish it was more based around UI standards comparable to UIKit or something. I like your approach of trying to make solutions as integrated as possible, however in this case it didn't really work. If I'm somehow not understanding something, it would be great to know how I am supposed to accomplish the above functionality without editing the library or writing lots of outside code.