Currently in case the Package Manager servlet is not up and running instead the Default Sling POST servlet is answering the requests to the Package Manager URLs and creates an according node in /crx/packmgr/service.jsp/file. This might happen if some required service from the Package Manager is not up and running. To prevent those kind of errors it would be good to first check the status of component with PID com.day.crx.packaging.impl.PackageManagerServlet. Only in case that is active it makes sense to trigger the installation via the install goal.
i've implemented an alternative approach in https://github.com/wcm-io/wcm-io-tooling/commit/295abc5b318be407d5704e40d5505ad1dcc15317
effectively i'm doing a GET request on the "help" command of package manager before uploading the package, and if this does not return 200 upload is not started. this should solve the issue you reported as well.
can you cross-check?