You will need to override the get_queue_config handling so that you can return your provider-specific configuration for that domain.
Note that get_queue_config is called according to the refresh strategy you define on that queue configuration, and that any DNS resolution performed to resolve the provider is also cached, so performance is not likely to be an issue.
If you were not using the queue helper to set scheduled queue configuration, you don’t need to call queue_helper:apply(msg), you can use the resolve_provider function independent from using the rest of the queue helper module.
If you are using it, then you’ll probably want to use skip_queue_config_hook = true when you queue_module:setup_with_options, then you can use queue_helper:resolve_config(domain, tenant, campaign) in your get_queue_config handler to extract the queue configuration from the helper.