You may run into an issue with the voltage drop across the wires. If the voltage drop in the ground lead is enough to cause ground at the remote node to be higher than the logic high threshold of the receiver, than the remote node will not be able to pull the voltage on the bus lower than it's own ground, and thus might not actually be able to drive the bus low, so be sure that there isn't too much voltage drop over ground if you carry power.
You can get into all kinds of crazy hacks involving a separate negative supply and a few transistors to pull to that instead of to the MCU Vss or an isolated dc dc converter at each note so you could have a separate power ground and bus ground, but when we looked at it for our project none of them were going to be anywhere near as cheap or as reliable as just using a 1$ CAN transceiver on each node and connecting it to the TX and RX pins.
In your case the main problem is that you have 12 devices each using at least 60-70ma, so I'm not sure how well the backup power feature would really work unless you used thicker wire.
What I did for collision reduction is to actually use the message arrival times from other nodes to seed the random numbers for the back off, because clock drifts between devices are fairly random.
IMHO you don't want to use a protocol that relies on timeouts to detect a failed packet when doing collision detection, because you don't want to have to wait the entire timeout period to retry. We used a unique STX character and a unique end character, plus a backslash that can escape either one. In case a node poops out just after sending a backslash, you can send two STXs, the first being a dummy, on any messages that really matter to you.
Having the master TX connect directly to the slaves seems like a bad idea, because you need the RX pin for collision detection. Why not have the master part of the open collector bus?