First of all Drupal is horrid. Really bad. It appeals to people who don't like writing code. Guess who maintains it? It is a royal PITA on the front end and taking a peak under the hood at the underlying PHP was like staring into the abyss. And I don't even know PHP that well. I've tried to have an open mind to both Drupal and also Joomla over the years but every experience has been misery on the client-side and not much fun on the back-end from what I could observe. If that doesn't sound very objective it's because it's not. I've worked with it. I freaking hate it.
A good CMS (I haven't really met one that I loved to be honest) might be helpful to you but they tend to be more about plug-in solutions that aren't very flexible or that have zillions more options than you need but none of the exact 2-3 ones you might want. I think choosing a smart generalist back-end framework might be the best way to go. WordPress is well-regarded but that might be because it's the only one that tends to maintain its own scope as a CMS.
After all, the point of a CMS is more to provide minimal-skill-editing of content on primarily content sites. Some, like Drupal promise much, much more but deliver a very enthusiastic community that knows absolutely nothing. In your case, certainly your site has content but it's not what I would tend to think of as a 100% content driven site. You have an app site or at least enough app to consider it so. Go with a back end framework that helps devs build and maintain apps.
I'm personally particularly fond of Django because it takes what I consider the ideal middle-ground. It will get out of your way when you need it to but the vast majority of stuff works so well and is flexible and fast and easy enough in its own right that you're still going to tend to want to do things consistently and in line with the framework's general philosophy. It's also a Python framework. And it assumes you can handle regular expressions. Django devs aren't people who hope to never have to learn anything new about development after college.
Python, IMO, and I'm not talking about the very best devs - so no holy war intended, is also going to tend to attract higher quality devs at the jr and mid-level. Or perhaps it makes more sense to say that it's going to alienate the crappy ones for not having a C-based syntax and offering flexibility that tends to horrify a certain kind of app dev who should probably stay away from the web.
The other general framework I've worked with that's tended to be the most painless has been .NET MVC, which was not easy for me to admit the first time I realized it. I'm not a hater but for your needs I would not recommend Rails. PHP might have something good in the mix that's even specifically targeting your needs but it could be a long search, and I despise Java too much to give an honest, unbiased appraisal, except to say that people who know why Java tends to make me want to kick puppies even though I'm totally cool with C, swear Spring is different.
You might also want to poke around and see if there are frameworks that cater more specifically to needs like yours. You never know. See what the competition or similar-minded businesses are doing.