When call mainthread.Terminate(), start finalizing written in mainthread/init.go and C.Py_Finalize() is called after releasing GIL state.
simple repro code
C.Py_Initialize()
C.PyEval_InitThreads()
// .. process is done and start finalizing ...
C.PyEval_ReleaseThread(C.PyGILState_GetThisThreadState())
C.Py_Finalize() // -> SIGSEGV