Using a custom Trace Channel with default response set to Overlap. So why is LineTraceBySingleChannel() hitting a cube's with response set to Block, but not a cube with response set to Overlap?

I believe the answer is simply that line traces care about blocking hits only.

… return the first blocking hit

So if an object is set to overlap on the line trace’s channel, the line trace won’t hit that object. That’s all it is.

I was mistaken in thinking that the line trace function had one type of collision response (whichever its channel had been defined with), and then that the objects in the world had their own responses to that same channel, and that you’d get a hit depending on how the 2 compared… …Which is just confused nonsense.

All I was really doing was setting a new channel’s default response, and then changing a cube to not use that default. It just so happened that the thing I was changing it to – Block – is what LineTraceSingleByChannel() needed.