Похоже, вы не до конца понимаете, как работает ASYNC / AWAIT в js.
Если вы используете await внутри функции async , это приостановит асинхронностьи дождитесь разрешения Promise, прежде чем двигаться дальше.
Код внутри вашей асинхронной функции будет обрабатываться последовательно, как если бы она была синхронной, но без блокировки основного потока.
async function main() {
browser = await puppeteer.launch(); // will be executed first
rl.close();// will be executed second (wait untill everithing above is finished)
await browser.close(); // will be executed third (wait untill everithing above is finished)
console.log("this line will not be executed."); // will be executed forth (wait untill everithing above is finished)
}