The US also has primaries-- the elections held several months before the "real" one to narrow the field. That primary season stretches out the whole campaign that much more. And the dates on those primaries aren't set in stone; they've been moving earlier for decades.
The other big issue is unlimited money in campaigns, obviously. Once bounded by limited public funds, campaigning has become a multibillion-dollar industry today. There's a clear interest on the part of certain businesses (and the party associates who generally lead them) to stretch the pain out as long as possible.* If all that money was limited by law, that would starve campaigns, and act to concentrate most of it nearer to the actual election when it would do most good.
* There's also the question of what happens to unused campaign funds. Left over pots of cash can be very, umm, "enticing".