Estou com os comentadores; Eu não posso começar a entender por que você gostaria de fazer isso. O que você está tentando realizar? Talvez possamos ajudá-lo a encontrar uma solução melhor.
Dito isso, você não poderá fazer isso de dentro de um trabalho do SQL Agent (pelo menos totalmente), pois, como você apontou, o serviço do SQL Agent depende do serviço do SQL Server. Parar o SQL Server interrompe o SQL Agent. Na melhor das hipóteses você seria capaz de enviar um sinal de reinicialização para o serviço do SQL Server, mas você não seria capaz de obter o status de retorno de nada e você perderá o controle sobre a situação se algo fosse para o sul.
Você pode escrever um serviço ou criar uma tarefa agendada que monitore o trabalho em questão e, após a conclusão do trabalho, você reinicia.
Mas, novamente, isso soa como uma correção de band-aid para algo.
EDITAR:
Se você tiver um tempo confiável após o horário em que souber que o trabalho terá terminado, basta criar uma tarefa agendada para reiniciar o serviço naquele momento usando um script do Powershell ou algo assim ( restart-service MSSQLSERVER
ou restart-service -displayname "SQL Server (MSSQLSERVER)
supondo que você esteja falando sobre uma instância padrão.
E então descubra por que o serviço está parado. Execute os rastreios do SQL Profiler, verifique os contadores de desempenho, execute manualmente as coisas que o trabalho executa para isolar o problema.