A telnet ping doesn't test that "the" service is up, just that the port is open on the VSE and *something* is listening on it. It could be anything listening on it, so it's a poor test.
I just tried this, and the results were interesting:
When I just hit <enter>, I get no error. I can hit <enter> as many times as I want, and I never get an error.
When there is a base path listed in the service model, and I type something other than just <enter>, I get the default "no match" response, and the telnet session is closed by the virtual service, again with no error.
When there is no base path in the service model, and I type something other than just <enter>, the telnet session is closed by the virtual service and I get the error you describe.
Are you not using base paths, or are you creating a virtual service with a mixture of base paths (so DevTest is unable to distinguish between services by the abstraction of the base path, and it is only able to use "/" as the base path)? I commonly see base paths used to differentiate between versions of a service, and so a virtual service will be for /v1/, /v1.1/ or /v2/ of a service, and those would be used as base paths to make sure there is never the chance for a virtual service to respond with an incorrect version of a service. In this configuration, I would have three different virtual services for three versions of a real service, all listening on the same port. If this is your case, you could follow this use case, and create an additional TCP virtual service with no base path to respond differently, thereby foiling any "telnet ping" test your developers try, forcing them to send properly-formed requests to test their deployment. I remember once creating a TCP service like this, which responded with lyrics from Rick Astley's "Never Gonna Give You Up", one line every second, rick-rolling the poor developer who would try to misuse my service in this way.