Thank you for an explanation, Rex. Your explanation was good news. However, your explanation reminded of what exactly had happened, and that's one bit of bad news in a whole list of bad news. The worst news that will "color" everything that follows is my bad memory, I really don't remember the details of what went on and therefore can't tell you about a rather serious problem I encountered.
So where did all of the "orphan" TCC sessions come from? Simple: I was doing something that killed the current (and I believe all running, although I'm not sure because of my bad memory) instances of TCMD.exe. I was tempted to report it as a bug, but at the time I was actually trying to accomplish something so I didn't report it immediately and I no longer remember exactly what I was doing that was killing TCMD sessions, leaving behind the "orphan" TCC sessions. (I hadn't realized that it was just Take Command that was dying leaving behind all of those orphan TCC sessions. )
So there's evidently a rather serious bug of some kind in TCMD.exe, but I no longer remember the details of how to invoke it. Sorry.
So I'll get back to the issue of PSKill vs. TaskEnd. First I'll start out that I have no issue(s) with TaskEnd, it's just that I don't use it purely out of habit. And invoking PSKill is, it turns out, a lot slower than is TaskEnd in real-world situations, but that doesn't matter because I don't ever use it in a batch file and it's more than fast enough for a human being (me).
Details: It takes .0074 seconds per task-kill attempt (I arrive at this figure by doing 3 sets of 100 task-kill attempts in a row, timing them, and averaging the times). If I redirect all of the output of TaskEnd to nul (>&NUL ) those figures don't change significantly, somewhat surprisingly to me. In that situation it takes TaskEnd an average of .0073 seconds to kill a task). For PSKill, it's an average of .3131 seconds under the same circumstances with output going to the screen, and .2818 seconds for the same circumstances with output going to nul. This makes TaskEnd 41.31 times faster than PSKill with output going to the screen, 36.6 times faster with output going to nul:
Now I want to point out what the difference between these figures and the numbers I reported above is: using another (really, really ugly) way I forced PSKill to be reloaded from the disk in such a way that no cache made any difference at all, not the Windows disk cache, not any cache that might be in the hard drive controller, and not any cache in the physical disk drive itself; i.e. absolutely no caching of any kind. And since it had to be read into memory directly from disk on every invocation, it's obviously much slower.
But I will note that I won't notice a third of a second when running PSKill from the command line.