Why can’t there be 40 minute games?

There's already a 45/45 option. Click on Custom and then More.... (may depend on platform). Under custom, you can also choose any time limit and increment you want. E.g., 37 minutes 4 seconds with a 19 second increment. You can also play daily games.
Edit - sorry for skimming the details of OP's post

Just keep in mind that most people are too lazy to read that. by your question well, either you play faster in 30Min Games, wait 1 century for someone to join a custom time control, or play 45I45 in case your too slow for 30Min Games.

Personally I don't think there's much or any likelihood of a 40/45 minute option being introduced. One argument against it would be dispersing the relatively small pool of players looking for longer games among even more variables, leading to longer wait times for most (even if maybe not for you).
If you have a 40 minute seek out, it can be accepted by anyone that sees it, there doesn't have to be someone else seeking the same length of game. Maybe widen your rating parameters so more people can see your seek - or join one of the slow time control clubs and schedule a 40 min game with someone by arrangement.
45|45 is ~75 minutes, but it sounds like you're looking for something shorter. There's a 15|10, which is ~22 minutes. I think it makes sense for G/30 and G/60 to change to 20|15 and 40|30 so that winning positions are far less likely to be lost on time. If that happened, 45|45 could be changed to 60|45 for those who want a G/90 feeling.