Frankly I don’t think the problem is with triacs. With relays you could damage your transformer in the same way. In fact, triacs at least have internal limit on the maximum current (e.g. 800mA), while relays have literally no limit on the allowed current, so you can potentially run a much higher current through it, causing ever worse damage. Also, if you can daisy chain relays you can also daisy chain triacs. In practice, unless if we are talking about power-line devices, for low-voltage devices I would always prefer traics: they are more much compact, cheaper, and have faster switching speed.
The issue you have encountered is rather unusual. As I said, typically when the transformer is overloaded, the voltage will drop rapidly, causing the controller to reset and release all valves. Actually, now I think about it: are you powering RPi through OSPi, or do you power RPi through a USB cable? In the latter case, when the transformer is overloaded, RPi will still keep the triac open (since it’s powered separately), and I can imagine this would damage the transformer.
For flexibility, I can’t put a hardware limit to restrict the number of open stations. Many users have a master station, which should be turned on concurrently with other stations. Also, some users use OpenSprinkler to control not only sprinkler valves, but also landscape lighting. They certainly don’t want lighting to be serialized. So I can’t put a hardware limit for one station at a time. This has to be implemented as a software limit. OSPi’s interval_program is currently designed to run stations sequentially only. But it may have a bug that causes more than 1 stations to open at the same time. I will communicate with Dan about the issue.