From my first obvservations, the predictedTouchesForTouch: method seems to return non-empty results at a very incosistant rate, and thus isn't dependable.
For example, sometimes every 2nd frame there is data available, but more often then not, there are gaps of 5-6 frames when no predicted touch data is available. Here's logs, showing time between input events, and number of predicted touches available, if any.
input: 16.48
input: 17.11
input: 15.94 (predicted 1)
input: 16.82
input: 16.42
input: 18.15
input: 15.12
input: 18.10
input: 15.40 (predicted 1)
input: 16.92
input: 16.47
input: 16.67 (predicted 1)
Is this expected? iPhone 6, iOS 10.2