particle deadlock and crash fixes a different way

one more try at this... don't try recursive locks, make sure thread paths only lock one type once.

Make update() lock for the whole time and not get too cute