Sistemas init modernos, como systemd e upstart, executam vários threads de execução, e mesmo com o init original, as coisas podem ser bifurcadas durante o processo de boot (você já disse que o seu faz, por exemplo).
Isso significa que seu processo está sendo executado ao mesmo tempo que outros processos, e qualquer resultado será intercalado com os seus:
Process 1 says "I'm here"
Process 2 says "I'm here"
Process 1 says "Doing my thing..."
Process 3 says "I'm here"
Process 3 says "Doing my thing..."
Process 1 says "Still busy..."
Process 2 says "Doing my thing..."
Observe que o pedido aqui é aleatório além da prioridade de início; um S05
irá começar antes de um processo S70
, mas quando eles terminarem um em relação ao outro é indeterminado, a menos que um preenchimento seja um pré-requisito específico do outro.
Se você já fez alguma programação segmentada, você estará familiarizado com esta corrida de cavalos. Como os processos estão sendo executados simultaneamente, eles não se entrelaçam de maneira ordenada - por isso, no meu exemplo, Process 3
consegue fazer várias coisas antes que processos iniciados anteriormente façam o equivalente. Etc. Isso é apenas acaso e não será o mesmo o tempo todo.
A inicialização é um tempo ocupado para o sistema - muitas coisas estão acontecendo ativamente de uma só vez. Portanto, se você comparar o tempo de execução para executar o processo sozinho, ele será mais lento, porque no último caso ele não terá que competir com muitos (ou, em termos significativos, nenhum) outros processos ativos.