Move channel padding logic into the channel reactor
As part of the discussions on !657 (merged), we agreed to move some of the channel padding logic back into the channel reactor. This ticket tracks that work (and mostly exists so I don't forget to actually do that refactor).