Hooks had some problems - the hook modules have to insert self
into the pipeline, but cannot decide into which (only main) and
cannot see Eval during init() (or use the logs)
Having HOOKS with explicit timing:
HOOKS="m:8:my_main_pipeline_hook t:79:cleanup_in_test_pipeline"
would be a possibility, but a little too complex.
Extension is almost the same thing as hook (sugary name change),
but can do anything during init, can insert multiple hooks
(to both main and test pipelines), read/change configuration
and use logs.
Good extension example is fetching tasks via RSYNC or GIT.