Я не верю, что существует явная поддержка для этого типа операций. Но вы можете создать достаточно хорошее решение.
Если ваша служба настроена на автоматический запуск, то можно с уверенностью предположить, что первый запуск предназначен для запуска системы. Любой последующий запуск является результатом того, что пользователь предпринял определенное действие, которое вызвало перезапуск службы. Вы можете использовать эти два элемента для построения решения.
Public Class MyService
...
Private m_first as Boolean = True
Protected Overrides Sub OnStart(args as String())
If m_first Then
m_first = False
Thread.Sleep(TimeSpan.FromMinutes(5))
End If
ActuallyStart()
End Sub
End Class