If you only need to "hear back once", then yes, Observables are probably overkill.
But again, it's a false dichotomy, and your second example isn't much different from what await essentially rewrites to:
Thing().then(val => /* call back */)
The benefit to async/await is that the runtime does the rewriting to Promise callbacks for you. But you can use both and get that advantage for both. Rx has supported converting to/from Promises since the beginning. Working with both is easy.
let val = await observableOfJustOneThingINeed
.take(1) // I just need one, I don't care if there are more
.toPromise()
You don't have to manually subscribe, you can use a Promise and await it.