nqnoc you can use 1 cloudflare key/account, but you would need to setup all customer domains on your CF account or if they have their own CF account they would need to give your CF account admin access - that way the token would work/have access it needs to update domains. On the Enhance side, you would have the one api token (that you setup in CF to have access to all domains your account can access) that you would then setup in the integrations section of each customer's website (you setup the integration/token, then in the dns of each domain you activate the integration, at which point Enhance dns manager controls the CF dns).
None of that setup at any point is automated in any way, you have to manage it all. The "one api token" is just saving a small step where you can reuse the same token on every customer's integration section. Once the setup is completed then there's some automation that can take place, like when you migrate a website between servers, DR, adding subdomains - all those things will update dns automatically at CF.
Yes you can use your own custom dns servers running in your cluster and also use the cloudflare integration. In a practical sense all this would mean is some of your customers would be using your custom dns servers and some customers would be using cloudflare dns servers.