SIGSEGVなどで「死ぬ」場合はプロセスごと道連れなので、pthreads的な対処は
無意味では?

そう考えていくと、スレッドが自発的に終了するケースだけを扱えばいいわけなので、
(スレッドプール的な構成なら)条件変数での通知・待機を使えばよさそうに思う。