I can't seem to easily access your branch to try all this out locally (who knows why, stupid git). But anyway, I am little surprised we still need to do any removal (the block below) if the rest of the system is now being made aware of the channel prefixes.  An alternative change would be to remove the new block below and change the ChannelNode.stringify(..) and add a condition on the prepend:

if (channelType.isTap()) {
  s.append(channelType.getStringRepresentation());
}

does that work better?