Your approach seems reasonable and conventional. You are creating a simple control system or SCADA system. Most of these are based on some kind of central database or data sharing scheme. Using a relational database to serve this purpose can be done, although it is a bit heavy and performance may become an issue if the system is intended to scale up.
CORBA and similar technologies are often used as the basis for efficient and scalable data sharing in SCADA and control system software. Real-time OS's such as vxWorks tend to provide a more appropriate framework for real-time multitasking and the built-in named-symbol libraries can be an efficient light-weight data sharing mechanism, although the cost probably puts it out of range of a hobbyist.
If your system is composed of a sort of network of IPC schemes, it may become a maintenance and upgrade nightmare. I would consider an approach that uses relatively few of these, and tries to generalize the data sharing and event propagation system.
In contrast to the common wisdom, I see nothing wrong with selective re-invention of wheels or any other machinery. If someone hadn't reinvented the wheel, we might all still be using square wheels (although triangular wheels eliminate one bump per revolution).
--- rod.