シミュレータで回避策を見つけました。
stop はビデオ処理スレッドをデッドロックするように見えるため、代わりにメイン スレッドで stop を呼び出すことを回避します。
// in iOS6 Simulator this blocks the video processing thread call back in UI thread.
// BOOL stop = [assetWriter finishWriting];
[self performSelectorOnMainThread:@selector(stopInOtherThread) withObject:nil];
-(void)stopInOtherThread{
//Stop doesn't block in MainThread
BOOL stop = [assetWriter finishWriting];
NSLog(@" assetWriter finishWriting :%d",stop);
}
この回避策は、finishWritingWithCompletionHandler では機能しないようです。
Apple にバグを報告できるかどうか試してみます。