I recently added audit triggers that had some degree of complexity. To test the performance one of the developers issued a million inserts in a little over an hour--far beyond what would be the expectation in production. Everything worked as expected. I've heard about performance issues with triggers, but I haven't seen them for audit triggers. I have seen them for triggers that do work that should be done by the application.
A million inserts. Was that indicative of your actual workload? Was it a million inserts done sequentially, or all at once? Inserting row after row may not be a valid test.
You are comfortable with triggers, and they may certainly work very well for your environment. But, they may not be the right tool for the job.
We have to capture data changes on a variety of systems. Triggers would fail miserably on a few of them. We've covered our needs with CDC, temporal tables, triggers, output clauses, and so forth.