Hey Paul,
This is all doable via a custom extension making use of
ReviewRequestApprovalHook. This can define the logic by which a review request is marked as "approved," which `rbt land` respects, and any custom hooks on a repository can also look for (there's a flag returned by the API for review requests that says whether it's approved and, if not, the reason why).
This can be used to require two ship-its, or have a required reviewers list, or to draw a random number or determine if it's Happy Hour. Anything you might need (though, if you have to perform any "expensive" operations, like calling out to another server, it's best to limit this and cache the results).
We have longer-term plans to introduce a concept of User Roles in the product, which could be used alongside this to better track who should be required to give approval (and we might have some degree of built-in customization around that at that point).
As for changing the owners, any admin should be able to reassign a review request by just changing the Owner field on the review request to another user. This does require Review Board 3.0.
Christian