Inversão de dependência no Nest nao funciona tão bem como no ASP.NET, pra conseguir fazer o (DIP) de uma interface vai precisar utilizar um decorator @Inject pra isso. Criar instancias de forma manual acaba sendo muito complexo de gerenciar, porque vc comeca a ter problemas para gerenciamento de variáveis de ambiente em tempo de execução caso queira fazer testes.
Sobre a estrutura de pastas, achei ok, porém nao gosto de comecar uma aplicação dividindo em módulos. Prefiro começar com a estrutura de infra/serviços/domínio e depois dividir em módulos.
├── app
│ ├── domain
│ ├── services
│ ├── infra
│ ├── shared
Porém aí já e gosto pessoal meu kkkkk.