Re: Was it ever stated officially why Harry was an Ensign for 7 years?
For a ship stranded in the Delta Quadrant, upward mobility for the crew shouldn't have been a concern. There was never any chance any of them were going to get promotions except by attrition. Certainly it's as reasonable to ask why Janeway was never promoted to admiral as to ask why Kim was an ensign for seven years. Promotion is only useful when there's somewhere to go when you're promoted. Having every officer on the ship at commander rank would've been possible, but Kim would've always been the most junior commander, and still would've had to do the same job.
That being said, when Paris was demoted to ensign, the show runners could have promoted Kim to lieutenant, junior grade rather than promoting Paris back to lieutenant, j.g. Not that rank ever was an issue between Tom and Harry, but it would've been funny for their ranks to have been swapped to see how it changed their dynamics.
Agreed, that might have been a good way to change the character dynamic by promoting Kim to the vaccant Lt. JG spot.
On the continent of wild endeavour in the mountains of solace and solitude there stood the citadel of the time lords, the oldest and most mighty race in the universe looking down on the galaxies below sworn never to interfere only to watch.