This will be my final code restructuring for a while. I will work on retooling comments and possibly asserts after these go in.
I made this change so it was obvious where the vm object lock is dropped. I like the way this is turning out because you can see clearly where it is picked up and dropped all in the main loop which is now small enough to see on a large terminal. The only indirect places come from deallocate or the lock swap in fault_next.
My intent is to test this whole series as a unit and commit them back to back.