I personally think I did a really clever way of making this work, so don't mind as I blab about this for a bit!
Each piece has 2 colliders per edge - A sender and a checker. When a checker is triggered it turns on all of the senders for that piece and also tells a global tracker how many connections it is expecting (1 connection per edge, which should be filled by another piece!). Of course it has to ignore any collisions from its own senders, but otherwise if there is any collision with the checkers (including the initial collision) it increases the number of total ACTUAL connections globally by one!
The ending space (the negative side of the battery) then compares the number of expected connections to the number of total connections. If they're equal then you succeeded! Otherwise you failed! This means you can have unrelated pieces on the board, but if they're never triggered then it doesn't affect the outcome at all!
One small glitch did occur where the end was checking connections before all of the pieces were done activating, but I just put a small delay on the end's checking to get around that!