Может быть, вам нужно сбросить поток буфера cout на оригинальный.
std::ofstream traceFile;
traceFile.open("c:/path/file.txt");
std::streambuf* fileBuff = traceFile.rdbuf(), *origBuf;
origBuf = cout.rdbuf(); //Save cout's StreamBuf pointer
std::cout.rdbuf(fileBuff); //Set cout's StreamBuf to file's StreamBuf pointer
std::cout << std::unitbuff;
std::cout << "disk is written\n";
cout.rdbuf(origBuf); //Reset cout's StreamBuf back to original
Кроме того, одновременная запись в один и тот же файл несколькими потоками может быть запрещена.
Это может быть причиной неудачи приобретения мьютекса.