Você precisa adicionar
[Unidade]
Quer = network.target
Depois de = network.target
Para o seu arquivo de unidade. Aliás, seu serviço deve estar saindo normalmente quando não houver rede disponível, o que não será reiniciado automaticamente, porque não é uma falha, a menos que o serviço saia com um erro.
Seu serviço deve retornar com um valor diferente de zero para que o systemd considere a falha. Isso pode ser retornar 1 no main ou exit (1) em qualquer lugar em C, por exemplo.