На самом деле, и exit (), и _exit () включают CRT, что означает, что все еще выполняются различные действия. (Не уверен насчет atexit, я не проверял)
TerminateProcess в Windows находится на уровне ОС, поэтому обходит все CRT. Если вы хотите сделать то же самое на Mac, лучше всего запачкать руки функциями маха. В этом случае:
#include <mach/mach.h>
... // lots of your code here
task_terminate(mach_task_self());
Это так же неуловимо, как вы можете получить.