There ought to be something in between Wiring and Linux. The problem is that the good minimal real-time operating systems are not free. QNX, VXworks, etc. are all expensive.
Additionally, Linux has available a multitude of very rich in-band debugging and logging capabilities that help you understand and mitigate common problems— whereas a bad interrupt or peripheral configuration on some microcontroller could have you banging your head again a GDB frontend or shelling out thousands for a tool like Tracealyzer to tell you what on earth is going on with it.