I don't think it's your installer class that's broken, it's the code in your OnStop in the service, so add some diagnostics to it.
As a way to fix up your system and delete the service, the WMI Win32_Service class will do it. Enable the service then use this VBScript as an example, with your service name instead:
dim servicelist, service, fso, a, plist,process,sname
Set fso = CreateObject("Scripting.FileSystemObject")
Set a = fso.CreateTextFile("services.txt", True)
Set servicelist= GetObject("winmgmts:").InstancesOf ("Win32_Service")
msg = ""
for each service in servicelist
a.writeline ("Displayname = " & service.displayname & " Name = " & service.name & " Started = " & service.started & " State = " & service.state & " Tagid=" & service.TagID)
sname=lcase(service.name)
If left(sname, 8) = "service1" And service.state ="Running" Then service.stopservice
If left(sname,8)="service1" Then
service.delete
msgbox "delete"
end if
next