Wow, that is a checkerboard down south. Seems like his Panzerdivisions are still in decent shape, though they could use a refit break. Buying time in Leningrad is a good strategy, Flavius is right that the battle for Moscow starts at Ostrov. Also smart move using some morale 50+ divisions to hold off the Finns that far north. With weaker units this would not work, even against AI, but this way it must pay dividends.
I would attempt just one thing differently than you presently do: I would pull all the Cavalry, Tank (early tank formations on both sides lack the infantry elements to make them economic/good defensive units anyway), Mechanized and a few infantry divisions out from the front at Leningrad and Moscow, and create two diversions: One serious push south of Lake Ilmen, vector West through Staraya Russa threatening the rail line through Pskov, and perhaps a second generally S or SSW along the Lovat threatening Velikie Luki. The latter may assist the former, and be a little more risky due to the poor retreat and supply terrain SW of the Valdai hills and Lake Seeliger. It seems presently both thrusts could be safe for 2-3 turns from an encirclement, and if only marginally successful could require your opponent to detach at the very least additional infantry to secure the area where AGN and AGC meet, if not even send Panzers from PzGrp. 3 and 4 to help stave off the threat?
Generally I feel your opponent concentrates his forces to much. Yes, this way he can advance brute force, just like the Germans at Kursk, but key to large pockets, or pockets in general is width. If you look back at the pockets of Wyjasma and Bryansk, it is amazing to see how widely spread out AGC was, from Pzgrp 2 and 2nd Army units starting basically from the region of Chernigov near Kiev to 4th and 9th Army and PzGrp 4 and 3 the south and north of Smolensk. I guess it not only does forces the Soviet to spread his weak counters, but also adds uncertainly to the main direction or break-thru point of any thrust.