If we could chain async method calls on promised objects, we could eliminate intermediate awaits and just have a single await on the result:
await Promise.resolve('hello').toUpperCase().replace(/$/, ', world!')
My proposal is to use ES6 Proxy so that any unknown method call is a promise to perform it on the promised object.