runit seems to have been designed to be able to replace init: http://smarden.org/runit/replaceinit.html
"In contrary to Richard Gooch, I suggest not to implement service dependencies and runlevel handling in the Unix process no 1, /sbin/init, keep it small and simple, that is why I wrote the runit package"