Rewrote the strange locking stuff in SUB-GC so that I can
understand it again: as a side effect, my newest thread/gc
torture test works again
OTOH, the final test in threads.impure.lisp was once observed
to break with this code, but who's to know if that's new?