A version that combines sidestepping with queue-like obligation picking.
A sidestepped obligation needs to be considered sooner than its parent.
We ensure this by building "small stacks" of obligations in the place where the parent originally stood.

Several exotic option flags were removed to make this more straightforward.

In any case, this seems to be a too complex solution to warrant incorporation into the master branch.