I dont think that each level here would need its own state, if you simplify this down abit, you can have an intro state - a menu state - a game state and a pause state.
The game state itself is what will actually handle the game side of these, including which level to load and render etc. I think having all these levels on seperate states like you can see adds a lot of bloat and complication to the design.
It could do something like the following
GameState : BaseState::Load()
if( currentLevel == 0 )
// Load the levels settings
GameState : BaseState::Update()
GameState : BaseState::Render()
This is obviously a very basic example, maybe someone has more time to better explain this ( or tell me im completly wrong )
Have a look at this tutorial ( Great reference for a lot of things ) http://gameprogrammingpatterns.com/command.html Altough not about states per say - it will show methods of passing and using paramaters like you have mentioned.
Another example on this site are states http://gameprogrammingpatterns.com/state.html
Just read it all, its a very imforative website, and explains alot well and in a fun way