Or put your script as /usr/local/bin/runsv (assuming /usr/local/bin is
in your PATH ofc) so the original runsv is left untouched, which is
nice (I feel), and certainly better when using a package manager.
Indeed, if runsvdir uses PATH resolution to find runsv, it's easier
and better to override runsv via PATH.
However, you should not assume that an executable in a package always
uses PATH resolution to find other executables in the same package. To
ensure reproducible behaviour and independence from the environment,
it is perfectly valid for an executable to hardcode paths to its
companion executables, in which case you have to replace the binary if
you want to wrap it.