Your approach should not impact the performance negatively. It seems that this is actually helping your environment. It appears, however, that stop/starts are solving a symptom not the root cause of the issue.
In your posts, you report that services slow down (1-2 second response times increase to 15+ second response times), service connections to the DB start dropping, etc. These symptoms make me wonder about VSE memory consumption, CPU utilization spiking to 100%, possibly heap dumps occurring, what other software is running on the server, and more.
By design, the steps in a service do not maintain a persistent connection to the DBMS. So, connection drops are indicative that something else happening in the server or the network when the step attempts to make a connection to the DBMS.
If possible, try to obtain reports that show the health of the server when the services slow down? Look for things like memory consumption at the point of the slow down, CPU utilization by server process, etc. How much memory is consumed by each of the DevTest server components (Registry, Portal, VSE, etc.) and how much free memory is left on the machine.
If you have any customizations in the services such as custom JARs, scripting, etc., are these assets experiencing issues, throwing exceptions into the logs, consuming memory, leaking memory, etc.
In the vse.log file, what do you see the VSE reporting in terms of CPU and memory consumption?
The vse.log displays that might be helpful are the ones that show the running services and consumption stats. For example:
<datetime removed> [Event Sink Thread Pool Thread 1] INFO com.itko.lisa.coordinator.VirtualServiceEnvironmentImpl - newimage: status=running, capacity=1 current tx/sec: 0 peak tx/sec: 0 errors: 0
<datetime removed> [Event Sink Thread Pool Thread 1] INFO com.itko.lisa.coordinator.VirtualServiceEnvironmentImpl - Memory used 192mb, allocated 631mb, max 910mb (21%) Our cpu usage 0%, system cpu used 33% GC time 0%