Kaan, thanks for the clarification, I blanked on that part of resident. Since he mentioned he was moving to modules, I focused only on that. In any case, to explain why your shown instances are greater than your billed, it's because we don't charge for idle, so it's to be expected.
But yeah, your explanation and troberti are EXACTLY right. The scheduler is a bit "black-boxy", so you need to test it and find what is right for your app.
Everything said is definitely on par with the behavior of the scheduler. I would drop max_concurrent_requests a bit, make sure you don't have too many max_idle_instances.
All in all, this is very dependent on the nature of your app, your users, and your traffic, so very hard to help you with this, except by suggesting tips like the above ones, and suggesting you to test and explore the different parameters.
Cheers