Init scripts should not need significantly more than a few lines.
I do not think that I have ever used an init script longer than 1 page of text.
If bugs are feared, it is always possible to invoke a script written in another scripting language.
While some people like Python for this purpose, in the past I had good results by using scsh for complex scripts where one wants to avoid bugs.
"scsh" is a Scheme dialect specially designed for replacing shell scripts, i.e. where you have a convenient syntax to express the features of a shell scripting language, like writing command pipelines, file redirections, etc.
Even a zsh script can avoid the most frequent errors from bash scripts, which are caused by the incorrect use of quotation.
With any scripting language, it is possible and recommendable to use strictly declarative init scripts, which only contain definitions of variables and parameters for invocations, separating the procedure definitions in distinct files, which are common to any installation and which are not modified for a custom configuration.
Even when it may be desirable to implement some functions of the init system in binary executables, those must be extremely simple, as demonstrated by the small executables included in the daemontools of Daniel J. Bernstein, and not like the big monstrosities of Systemd.