Attached is a simple project that shows the problem. To reproduce:
$ python setup.py build_ext $ python >>> import dummy >>> dummy.func()
This works fine.
$ python3 setup.py build_ext $ python3 >>> import dummy >>> dummy.func()
This crashes the interpreter from a secondary thread. The only difference between the two is the Python version: the working command sequence is using /usr/bin/python on OSX 10.12, the other is using Python 3.5.2 (python.org installer) on the same machine.
This extension doesn't use PyObjC at all, and shows that there is some difference between the Python.org binary and /usr/bin/python that causes problems.