Olá, Alexandre. Entendo que a arquitetura limpa pode parecer um pouco complexa no início, mas vou tentar esclarecer suas dúvidas da melhor maneira possível.
A Clean Architecture, ou Arquitetura Limpa, é uma estrutura que visa separar as responsabilidades do software em camadas distintas, tornando o sistema mais organizado, flexível e independente de frameworks e UI.
A sua organização proposta está bem próxima do que geralmente é adotado. No entanto, vamos detalhar um pouco mais:
Domínio (ou Núcleo): Aqui ficam as Entidades, que são os objetos que contêm as regras de negócio mais importantes. Elas são independentes de qualquer detalhe de infraestrutura e não devem ser afetadas por mudanças externas, como banco de dados ou interface do usuário.
Aplicação: Esta camada contém a lógica de negócio da aplicação e coordena as entidades do domínio. Aqui ficariam os Use Cases (ou Casos de Uso), que você mencionou como "Services". Eles contêm regras de negócio específicas da aplicação e orquestram como os dados são movidos entre as camadas. Os Controllers, que lidam com a entrada de dados do usuário, também podem ser colocados aqui, embora em algumas arquiteturas eles possam ser colocados na camada de Interface do Usuário.
Infraestrutura: Aqui ficam os Repositories, que são responsáveis por persistir as entidades em um banco de dados, e os DTOs (Data Transfer Objects), que são objetos simples usados para transferir dados entre as camadas.
Em relação à sua dúvida sobre o mapeamento das entidades sem utilizar anotações como @Entity, uma abordagem comum é criar classes de mapeamento ou converter que transformam as entidades do domínio em objetos que podem ser persistidos no banco de dados (e vice-versa). Essas classes ficariam na camada de Infraestrutura.
Espero ter ajudado e bons estudos!