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.