Now I understand a little bit more about your scenario.
So my next question is, does your processes require persistence? are they long running?
If they include Human Tasks, you will have a bottle neck in the human interactions not in starting the sessions.
If you have short running processes / or in memory processes, you can just create a session per request and as soon as they finish you can drop that session.
Based on your configuration, it seam that you need persistence (but I'm just checking here).
And basically yes, my suggestion will be go to the async service task approach.. so the engine can do all the instantiation, but you don't need to wait to call your service and expect the results before moving on to the next process creation.
Cheers