It's probably limited to 80 characters so that it fits on an IBM punched card.
Sorry, I digress. I was able to recreate the problem with PS 5.1 on Win10. It could be fixed in PS 7, I don't have that installed anywhere to test with. I see that Remove-Service was added in PS 6.0, so maybe other changes were made.
I'll speculate that the developers might have wondered "why would anyone define a service with with a really long name when the DisplayName would seem to be the better place for a verbose value?".
Looks like net.exe can start the service or you can use a shorter name and use DisplayName for the longer text.
$Name80 = "TestingLengthOfServiceNameWith--------------------------------------80characters"
$Name81 = "TestingLengthOfServiceNameWith---------------------------------------81characters"
$Name80.Length
$Name81.Length
New-Service -Name $Name80 -BinaryPathName %windir%\system32\svchost.exe
New-Service -Name $Name81 -BinaryPathName %windir%\system32\svchost.exe
"Start 80"
Get-Service -Name $Name80 | Start-Service
""
"Start 81"
Get-Service -Name $Name81 | Start-Service
""
"Net 80"
net.exe start $Name80
"Net 81"
net.exe start $Name81
""
"Try generic"
Get-Service -Name "testing*" | Start-Service
""
"Can we query them? "
sc.exe qc $Name80
sc.exe qc $Name81
""
"Now delete them"
sc.exe delete $Name80
sc.exe delete $Name81
Or use display name.
$Name80 = "Testing80"
$Name81 = "Testing81"
$DName80 = "TestingLengthOfServiceNameWith--------------------------------------80characters"
$DName81 = "TestingLengthOfServiceNameWith---------------------------------------81characters"
New-Service -Name $Name80 -DisplayName $DName80 -BinaryPathName %windir%\system32\svchost.exe
New-Service -Name $Name81 -DisplayName $DName81 -BinaryPathName %windir%\system32\svchost.exe
"Start 80"
Get-Service -Name $Name80 | Start-Service
Get-Service -DisplayName $DName80 | Start-Service
""
"Start 81"
Get-Service -Name $Name81 | Start-Service
Get-Service -DisplayName $DName81 | Start-Service
""
"Net 80"
net.exe start $Name80
"Net 81"
net.exe start $Name81
""
"Try generic"
Get-Service -Name "testing*" | Start-Service
""
"Can we query them? "
sc.exe qc $Name80
sc.exe qc $Name81
""
"Now delete them"
sc.exe delete $Name80
sc.exe delete $Name81