So the trick is just to make sure the "run a bunch of stuff" .do step produces actual output that will be deleted if you delete the subdir. That is,
default.build.do can trigger on a request for outdir/anything.build, then create outdir, do the build, and creates $3.