I eventually solved the issue by discovering that the program has a core library it exposes as a DLL. Targeting that for dispatch solved the problem, likely sidestepping an issue related to waiting on user input the application never receives when starting as service.