Это довольно широкая тема, которую вы затрагиваете. Какао действительно содержит некоторые полезные методы связи между нитями. Вы можете посмотреть на
[NSObject performSelector:onThread:withObject:waitUntilDone:]
Это будет работать только в том случае, если у вас запущен NSRunLoop во втором потоке. В противном случае используйте bool @property в вашем классе записи видео. Это будет флаг, который вы предложили. Измените его значение из основного потока и проверьте его значение из дополнительного потока в цикле записи, чтобы выполнить действие.
Не забывайте, что ваше объявление @property должно быть атомарным.
Вы также можете использовать NSOperationQueue
или блоки, из вашего вопроса сложно сказать, что будет работать лучше всего. Полагаю, зависит также и от ваших предпочтений в кодировании.