Any earlier than 6/22/41 would have meant Russian mud. Any later was risking losing good weather. Also, I know its controversial, but USSR could have been staging its own Barbarossa. There's just too much bad history between Communism and National Socialism. Too much bad history between Slavic Europe, and Western Europe. Eventually, Soviets would have attacked.
Germany should have:
1. Declared total war (economic mobilization) after the fall of France while public opinion was still good.
2. Taken Leningrad when it was still possible. This would have eliminated the Soviet Baltic Fleet, establishing a land route to skandinavia through Finland. The Baltic Sea would have become a German lake.
3. Ignore Moscow as an objective, and concentrate on an Operation Blau strategy in 41 instead of 42.
Easy for me to say these things with my 'crystal ball' called history.