Все потоки (созданные GCD или нет) завершаются при выходе из приложения, поэтому да, блок не будет запущен (никогда), если он еще не был. Если есть работа, которая должна быть завершена, прежде чем приложение сможет безопасно завершить работу, вы можете подождать этого в -applicationWillTerminate, но на самом деле это не очень хорошая идея, так как ваше приложение может быть принудительно завершено пользователем и -applicationWillTerminate может никогда не запускаться.