If it's of any interest, I've had half a dozen of the Dapol GWR signals running on a Digitrax & R&R TrainController DCC controlled layout for the past month without any problems. They are operated via a CML DAC20 accessory decoder (usually used for points), the closed and thrown outputs are linked together and go to one side of the coil of a SPNO 12v relay, the common output of the accessory decoder goes to the the other side of the relay coil. The DAC20 provides feedback to the system and R&R via LocoNet as to the state of any signal at startup each session.
Whenever a thrown or closed command is issued the relay (substitute for the push button) closes the Dapol signal operate circuit without fail. Because of this, once you have sync'd the signal (I use thrown for signal off and closed for signal on) it has never once lost sync with the requested operation. If ever it should fail, I'd do exactly what I'd do if a point failed to throw, just issue the command manually from the DCC controller.
Using vero board, half a dozen 12v SPNO relays and some terminal strip I've made up a board that links the accessory decoder to the signal yellow operating wires.
Caz