It is my opinion that one of the prominent and yet overlooked reasons that the Allied cryptanalysts were able to end up winning against German cryptographers was that they were indeed Allies. Although there were times when they kept information from each other, they were able to share their breakthroughs in a way that Germany could not share with its allies. Every time an advancement in breaking the code was made it was possible for them to share that advancement with each other, and this allowed them to break more codes faster. Germany, on the other hand could not share breakthroughs with codewriting and codebreaking with its allies. This is for a pretty obvious reason.
The Allies were only intent on defeating Germany and its allies, to keep the world balance as it was. Germany and its allies were intent on conquering as much territory as possible. This meant that Germany was afraid to share information with its allies, because there was always the chance that once they defeated the Allies, they would turn on each other. An interesting parallel of this would be that of supervillains. The issue with them joining together to defeat superheroes was and is always that they can't work together for very long before turning on each other.
The Allies could communicate with each other. Germany could not do so. This, as simple as it is, is one of the key reasons that the cryptanalysts worked so efficiently. The Allies were allies.