Не могу быть уверен, но кажется, что вы не учитываете случай использования, когда одна страница может не закончить рендеринг, а другая входит в канал.
Строка в
loadSinglePageWithWidth:(float)width andHeight:(float)height
myPageRef = CGPDFDocumentGetPage(...
выглядит особенно нестабильной, даже если она заключена в прагму @synchronized.
Я думаю, что вам нужно учесть эту ситуацию и отменить все существующие рендеры / анимации, прежде чем разрешить запуск следующей.
ТАК не отладчик.