Whether the landing on Normandy (Operation Overlord) was actually going to take place was the call of the three Allied leaders, Bevin Alexander explains (in How Hitler Could Have Won World War II), not the generals:
They did so at the Teheran conference in late November 1943.
Roosevelt was not as set on Overlord as Marshall, but if Stalin wanted it, he would demand it. Stalin still had the power to sign a cease-fire with Hitler. This was increasingly unlikely with the German retreat after Operation Citadel, but Roosevelt sought to avoid a separate peace at all costs. Beyond that, he was seeking a “constructive relationship” with Stalin after the war — a Soviet Union as a responsible member of the world community, not an agent of further disorder and war.
Consequently, at Teheran, when Stalin contested diversions in the Mediterranean that Churchill was seeking, Roosevelt announced he opposed any delay in the cross-Channel invasion. With that, the die was cast for Overlord.
Stalin had already signed a peace treaty with Hitler. Hitler violated it, rather egregiously. There was absolutely no way Stalin was going to make the same mistake twice with the Germans still camped out on Russian soil, and the Russians didn’t get into pre-war German territory until 1945 or so.
Germany attacked the Soviet Union two weeks before the Soviet Union planned to attack Germany. Don’t pretend that Stalin was an innocent victim.
Never forget that both Germany and the Soviet Union invaded Poland, but Britain and France only declared war on Germany.
Britain and France guaranteed Polish borders only against Germany, and my own government acted unexpectedly stupidly by ordering soldiers not to fight the Soviets.