iOS doesn’t register the new key value into a text input until after the keypress event has fired. This makes the tokenizer one key press behind. The input event is fired whenever the input changes however, so adding that type to the list of listeners will fix the problem (it will also match the types of listeners on Typeahead).
I did notice that Phabricator tokenizers work correctly on iOS, but am not entirely sure why. Regardless, I feel this change is the right way to do it.