Late to the party, but I just stumbled upon this and afterwards used my head (sigh) for a top level async function. Instead of doing process.exit(1)
you can simply set process.exitCode = 1
in your catch
clause. This will make it so control flow continues as normal and once the process exits on its own, it will do so with code 1.