This is a relic of a long-gone past where marktasks and unskip needed to be different. Now it just makes use duplicate entire code blocks for no good reasons.
engine_unskip()
is superior as it only loops over the tree sections where actual work could happen, so that's the version we should keep.
This version keeps marktasks as a way to verify unskip's job. Once we are happy they are identical (as they should) we can remove that check.
Actual changes to keep past these tests: