The result is often a buggy mess that takes far too long to fix and that offers only a handful of basic services. Any port to a new processor is a struggle, as every CPU has its own interrupt structure. I've learned, through many mistakes, that the best solution for any software problem is to buy code in a can whenever possible. As a programmer I always either delivered code late or got it out on time through heroic efforts. As a manager I've learned to be wary of time estimates from any software person.
Cost is the usual objection.
A decent RTOS can cost thousands of dollars. And each has been proven in hundreds of applications. Now I'm seeing more and more people interested in buying rather than building. Perhaps the industry is maturing. Certainly the promise of OOP will never be realized till we programmers decide to buy software components rather than reinvent them.