Bom dia!
Bom, não parece ser uma pergunta de TypeScript, mas sim de Angular, certo? Quando for assim, postar no fórum correto aumentam as chances de você ser respondido, mas como eu encontrei sua pergunta, vamos lá.
Não é possível usar await com Observables, eles não são estruturas da linguagem JavaScript, mas criações de terceiros. Só se você converter um Observable para uma Promise, mas não é recomendado fazer isso porque Observables são mais poderosos.
Sobre sua necessidade de executar em sequencia códigos assíncronos, você já deu uma olhada nos novos cursos de Angular 6.0 da Alura?
https://www.alura.com.br/curso-online-angular-fundamentos
https://www.alura.com.br/curso-online-angular-autenticacao
(tem mais dois na fila de edição).
Digo isso porque você fez os de Angular 2 e não os mais novos. A maneira de lidar com observables mudou, então a resposta que lhe darei é utilizando Rxjs 5.5 ou superior.
Você consegue o que deseja
o operador switchMap. Segue um exemplo de conceito. Buscamos os dados A e usamos o resultado para buscarmos os dados B:
import { switchMap } from 'rxjs/operators';
service1
.getDadosA()
.pipe(switchMap(dadoA => {
// usa o dadoA para buscar os dados B
return service2.getDadosB(dadoA);
}))
// tem como retorno os dados de B
.subscribe(dadosB => {
console.log(dadosB)
})
Sucesso e bom estudo meu aluno,