The output of all ballasts was run through a Molex connector, allowing the entire chassis to be removed from the enclosure for maintenance, without having to rip out the connectors mounted for the lights to connect.
I made some circuit changes to make the fans operate better, which they do. They use relays to run the fans, rather than transistors. I thought the transistor solution was a little more elegant, but I didn't have time to figure out why it didn't work, so this was the better solution for me.
I also added a polyswitch (a solid state, auto-resetting fuse) on the 5 and 12 volt power lines to protect the system. You can see those in the bottom right corner near where the red and yellow wires come in.
Here's the ballast during it's test run. The bunch of loose wires hanging out is a test jig that's connected to fire up the system without the controller attached.
Fans and lights, powered up.
That's it for now. The ballasts are working perfectly, so I'm ready to go with lighting. I don't have the actinics mounted yet, and I don't plan to until sometime after startup. There isn't a convenient place to mount them in the canopy, and given that I'm not sure I'll need them, I don't want to put in the effort until I'm sure.
When I have some pictures of the tank with the lighting in operation, I'll post them.