I finally got this issue semi figured out, at least to a point that my application doesn't crash every time you restart the game.
What I needed up doing was a combination of things, first to track down the issue I moved the
__jsc__.garbageCollect() call around and realized that if I moved it to after the point that I was initializing
this._space = null; (where this.space is my chipmunk space) then the excbad_access was thrown in chipmunk code. This led me to believe that the lifespan of chipmunk objects was not what would be expected, so I added code in my
onExit function to remove all bodies and shapes from my chipmunk space, then I set the space equal to
null. After doing this I was still having issues, which I guessed had to do with the transition between scenes, so I removed the cross-fade from the replace scene call that restarts the game and POOF it works great now!
So it seems that chipmunk spaces aren't properly released after a scene ends, it also seems that bodies and shapes in the chipmunk scene stick around as well. I'm not sure if this is a bug, or intended behavior, but if it's intended it needs to be WAY better documented than it currently is, cause I've poured more hours than I'm prepared to admit refactoring, and debugging code to finally find this issue.
Also if anyone has any ideas on how I can incorporate that cross-fade back into my game without crashes resulting, I'd be very grateful, but if not I'll still call this a win.