Я думаю, что вы назвали все возможности. На самом деле, я даже не знал о № 2 и № 3, и я написал книгу о базовой анимации . ; -)
КВО не доступен для этих свойств. Было бы неплохо, если бы это было так, но я полагаю, что причина этого связана с накладными расходами. Значение будет обновляться очень часто, и ему придется перезванивать любым наблюдателям.
Во всяком случае, я считаю NSTimer наиболее надежным подходом, но теперь я не уверен в том, что вы сказали. Что заставляет вас думать, что таймер не синхронизирован? Почему трудно заставить таймер срабатывать только во время анимации? Разве вы не можете просто проверить условие, которое вы хотите в обратном вызове таймера, а затем ничего не делать, если условие не выполняется?
С наилучшими пожеланиями.