Since procd does not block when init scripts execute stop operation, it causes ctrld command callers (the installer, users ...) thought that ctrld process was exited, while it does not. See: https://forum.openwrt.org/t/procd-shutdown-issues-questions/33759
So the code is more modular, easier to read/maintain.