Perhaps you are pushing it too far. I dont think your current approach is maintainable and depending on how all this will evolve, it could lead to an explosion of different states.
I have a few ideas on how you could tackle the problem. You could implement the 7 main states using the state pattern and use flags to track the other conditions, so within each states you could write conditionnal statements based on these. The code within functions would get slighlty more complex, however I believe it will still be more maintainable.
I do not have much information about your state transitions and everything, but another idea would be to have a single state class from which you can create anonymous subclasses by passing in a collection of conditions that needs to be met to activate the state.
Then, you do not have to name any of your states, you simply have to keep them in a collection and when any properties of the main object changes that might cause a state change, you loop over the state collection and your will find your new state by comparing the object properties with the state conditions.
Note that you could also use a HashMap to store the states and create a hash from all conditions to get a unique key. That would make state lookups faster than looping over all of them to find the next state.