It is conceivable to write a script that is attached to a class (or all classes) that checks at regular intervals to see if the party members should be 'promoted' and then does it.
Way beyond the work that I want to put in on it, but I think it can be readily enough done.
Then you could have a Training Hall free design but still advance in levels.
You could also do it a different way, and have a zone event that checks on each step...you could even have a portable Training Hall this way, maybe like a training manual the party carries with them or something.