When a function hits an await statement, it runs the code on the right-hand-side to get the promise and then goes to sleep.
Other functions can run in the meantime, but any further lines in this one won't until the promise resolves.
That isn't a downside. That's the point.
async function example() {
const result = await somethingFromAPromise();
do_something_with(result);
}
If it didn't stop, then you wouldn't have the result to do something with on the next line.
What that section of documentation is saying, in a very long winded way, is that sometimes you'll have a situation like this:
async function example() {
const result1 = await somethingFromAPromise();
const result2 = await somethingFromAnotherPromise();
do_something_with(resul1, result2);
}
… where you have two promises that could run in parallel because they are completely independant, but you don't start the second one until the first one is finished.
It also tells you how to mitigate that
async function example() {
const result1Promise = somethingFromAPromise();
const result2Promise = somethingFromAnotherPromise();
const [result1, result2] = await Promise.all(result1Promise, result2Promise);
do_something_with(resul1, result2);
}