I think the solution is much simpler than Grag38's estimation. You could do it with nothing more than the four LEDs, four transistors, three buttons, a few (6~8) resistors, and a very small Arduino (like a Nano or a Pro Mini.) Box B needs nothing but the two LEDs, the button and the cable connector. You could almost do this without a microcontroller at all. But in this modern age, it is easier to program a sophisticated microcontroller. 30 years ago we would have done it with discrete TTL or CMOS logic gates.
I would add a function to allow box A to detect and signal a cable/Box B fault. It would be trivial without adding any extra hardware.
You're absolutely right. The only issue I see with this is going to be the communication method.
In reading back, it LOOKS like the OP might have been suggesting that this be done with ONE UNO. This almost simplifies things.
If we look at the remote unit (non-uno) as just a simple display / button, it could be done just fine, though the resistance of the cable would need to be tested and appropriately lower resistors used on the receiving end. If the cable was bulk or well labeled, you can get the DC resistance per meter from it. This shouldn't be confused with the impedance, as we're not passing digital signals in this scenario. Given that cat5e can handle at least 100mA / conductor, this should be much easier than I was making it!