I am actually a beginner GH user. Currently, I am developing a PHP Client for a customer using the Routing Optimization API. Unfortunately, despite of all things that I have done, I receive still the response that the message is too big.
Here are my steps,
Create the JSON including 150 Locations
Gzip
send it using curl to GH Server.
It works for 80 Locations already, but my customer has increased his license.
As a rule of thumb I can recommend you to solve Traveling Salesman problems (1 vehicle, x stops) with the synchronous endpoint and everything else with the asynchronous one.