For the improvement of the national team part and more/better top flight English players, a B league is not the only way and may not be the best way. What about a really simple idea of reducing the squad sizes? Have a maximum number of players you can sign and then after injuries and suspensions, younger players have to be picked; this way they would get more first team opportunities and surely that is better for their development than playing at a lower level? This is just one suggestion. Ps I believe the answer to better English players starts a lot, lot younger and is about parent/coach mentality at grass roots, but that's a whole massive thread on its own.
Here lies the problem. I agree that smaller squad sizes would work, restrictions on the amount of non English players in the squad/first 11 would work (not sure if this is legal), but I feel that by doing one or both of these the quality of football on display in the PL would suffer, causing it to probably lose it's "best league EVAAA" title, and that is something I don't think the FA want to encourage. Allowing B teams in the lower leagues would keep the quality of the PL the same, but potentially increase the numbers of home grown players in the league. I agree on your last point that it starts younger, but there is also clearly not enough being done to help those in their mid-late teens imo. As for Beefys point about clubs being replaced by B teams, I know it is different but I don't feel it is much different to any new team being started up and getting into the football league, replacing a "proper" club.