Какое у вас определение надежного? Ошибка 16 мсек в 1-секундном таймере составляет менее 2% ошибки, но в 30 мсек. Ошибка превышает 50%.
NSTimers будет ожидать завершения происходящего в текущем цикле выполнения, и любые ошибки во времени могут накапливаться. например если вы дотронетесь до дисплея N раз, все последующие повторные срабатывания NSTimer могут опоздать на совокупное время, затрачиваемое от 0 до N обработчиков касания (плюс все остальное, что выполнялось в «неправильное» время). и т.д.
Таймеры CADisplayLink будут пытаться квантовать время с частотой кадров, предполагая, что ни один из задач на переднем плане не занимает столько времени, сколько время кадра.