Thanks for the idea! I was thinking of that too, and I may still try a fix for that idea, but then I remembered some contrary evidence.
The contrary evidence is…
I have another instance in my app where I ignored movement. In that instance, only a touch/end or touch/cancel would cancel the timer (so no step 3 in the above description). Or, sort of like a move threshold of an infinite number of pixels.
Anyway, in that instance, it still didn't work -- no long press was detected.
However, I just thought of this idea in support of the original theory…
Maybe the iPhone X is so sensitive that the user always makes a series of tiny movements that result in a bunch of touch/begin, touch/move, and touch/end messages (that settle out to the right state) but Corona can’t keep up with setting, cancelling, then resetting the timer(s) that frequently.
Here's another thought. What happens if the user changes pressure during a long press? For example, say, the user gradually increases pressure then decreases pressure during a long press. If Corona implements the following event sequence
that work work for my code. But if the Corona sent the following event sequence
end heavy pressure
those end messages would be bad for my implementation.