Sua abordagem está correta, mas seu proc wrapper deve estar no banco de dados msdb. Então, você executa "EXEC msdb.dbo._TestSendMail"
Isso ainda deixa a questão das permissões no dbo._TestSendMail no msdb. Mas public/EXECUTE será suficiente:ele expõe apenas os 3 parâmetros que você precisa.
Em caso de dúvida, adicione WITH ENCRYPTION. Isso é bom o suficiente para impedir que qualquer pessoa sem direitos de administrador do sistema visualize o código
USE msdb
GO
CREATE PROCEDURE [dbo].[_TestSendMail]
(
@To NVARCHAR(1000),
@Subject NVARCHAR(100),
@Body NVARCHAR(MAX)
)
-- not needec WITH EXECUTE AS OWNER
AS
BEGIN
EXEC dbo.sp_send_dbmail @profile_name = N'myProfile',
@recipients = @To, @subject = @Subject, @body = @Body
END