Yak shaving is only procrastinating if it's optional. Any interesting thing you create will need a huge set of errands into unrelated tasks. If you refuse to do the errands, you'll never do anything interesting.
But TEX was a rather weak prerequisite to writing TAOCP. It will undoubtedly be re-typeset in the future for either a new device or a new generation. And the font surely an even weaker prerequisite. (But both are totally Knuth's prerogative and I hope no one over chastises him over either decision.)
If the series isn't finished because of TEX, I think we'll feel like it was a bad tradeoff. (But I could see others feeling like TEX is is more valuable than volume 11 or whatever of TAOCP).
IMO TeX has been such an incredible contribution that, while the art of computer programming is a wonderful series, if I were Knuth I'd be able to rest easy in my old age. The man accomplished so much, he has my sincere admiration
I thought so too, but looking at the definition on wiktionary:
1. Any apparently useless activity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem.
I was doing a bit of yak shaving this morning, and it looks like it might have paid off.
2. A less useful activity done consciously or subconsciously to procrastinate about a larger but more useful task.
I had thought that only definition 1 counted as Yak Shaving but apparently definition 2 is also in common usage.
I would personally find the concept more useful if it only meant definition 1. But that might just be me.
I think the "bad" yak shaving is one where you never get any task done.
If you actually create TeK, and metafont and so forth, then that isn't the "bad" sort.
Whether it actually qualifies as Yak Shaving is an expedition I will not go on, but I think you have to go back to the original source (the xkcd comic), and then interpret the "point" of it and so forth. That might be a worthy detour, and you can tell us at the end if it counts as a yak shave.
For me, yak shaving is when the prerequisites to doing the thing I want means I have to do things I hate, like resolving inconsistent circular library package dependencies for things I don't even want on my system based on code that's been erased from the internet !-(