This drastically shortens maximum hold times on object locks in fault. We will basically only hold it through page allocation. It also eliminates some ugly lock/unlock/relock style code.
I intend to continue to refactor fault into smaller functions but I wanted to introduce the locking change first since it has the largest functional impact.