ClientJMeterEngine can leave the server in a busy state if the run command fails. This is because the configure phase sets the busy flag (active) which is normally reset by the end of a test.
[I am working on this]
It's currently quite difficult to trigger an error in runTest(). [The error was noticed when testing possible fixes for Bug 51937]
This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/2575