Thank you for replying. From your replying, I could understand about your situation as follows.
In your situation, 30 users open the Web Apps and then, all users run google.script.run, simultaneously.
I think that when the HTML is loaded and google.script.run is run at the single loaded page, it can be run with over 30 concurrent executions. This can be confirmed using the following script. In this script, no error occurs even when "google.script.run.sample(i)" is run 50 times with the asynchronous process.
HTML side:
<input type="button" value="download as PDF" onclick="for (let i = 0; i < 50; i++) google.script.run.sample(i);" />
Google Apps Script side:
const sample = e => console.log(e);
Unfortunately, I have no data for calling google.script.run with each browser of 30 users, simultaneously. But, if google.script.run is the same action like above, I think that over 30 concurrent executions can be used. Here, there is an important point. In your situation, if you are required to run the script for each user in order at Google Apps Script side, I would like to propose to use the LockService.
But, I'm not sure about your actual situation. So I'm not sure whether above information will be useful. I apologize for this.