Commute-in-a-commute bug fixed.

Strict commute did not check if it is already running within another
strict commute, so it would reset _blockEnlist to null when it was
done, allowing the rest of the outer commute to access anything.

Wrote test which detects the bug, and fixed the bug.