Performace issue

The exact issue is that you are expecting predictable performance out of M0. M0 is free. M0 is shared. And shared means that it is shared by others. Your performance are affected by workload of others running their cluster on the same infrastructure.

This being out of in the open. If anything takes

with only as few as

then the issue is not with your M0. The issue is your connection or your code.

The above seems to indicate some issues with your code. There is no reason to have one request blocking the others in async/await world of JS.