Actually i have a waaaaaay easier time getting an S on a long game, hands down. Most of the time if i'm close but don't get an s, its because the game didn't go long enough. I can tell you the NUMBER 1 thing people don't do is take jungle camps. Once you have 2 items built, start taking jungle camps. Nine times out of ten when someone doesn't get S, its because their CS was too low.
What people should be complaining about is when the guy whose fed has to afk farm jungle camps to get an S and its costs his team the game, because riots system for s requires ALOT of farm, not necessarily doing things that will win the game.
One thing that might help is a meter in-game which shows your grade if the game ends right there (the coding basically exists already, they just need a a visual to communicate it to you), and it shouldn't be that difficult to add. It may not tell you what your doing wrong exactly, but you could observe what nudges it the most one way or the other.
Now I do agree though Riot needs to be clear how things are weighted for s, they haven't communicated that clearly and the use the flimsy excuse that they are afraid if people know whats weighted more, it may lead to people being toxic and not trying to win, just trying to s, but that logic is flawed. Many people do things that won't make them win already, just because they believe it is what will get them an S. So the damage already exists, and revealing the proverbial man behind the curtain won't do more damage, and should do some good.