It doesn't make sense. If Janeway was unhappy with Kim, she could have sent him to go scrub Neelix's pots or something instead of working on the bridge. So she really should have promoted him after 2-3 years. It's not like spending a long time as a Lt. Cdr. or Cdr., that's almost to be expected. The Ensign to Lieutenant JG promotion is almost automatic if you manage to keep breathing for two years without really screwing up. It doesn't necessarily have to come with a job change, if there are limited jobs available, it just means you're eligible for a Lt. JG job if one comes up. Janeway was really screwing up Kim's career by denying him a routine promotion. Any captain is going to look at his record and think he must have screwed up but somehow escaped being booted out of the service, and looked for some other lieutenant to have aboard. Kim is probably going to leave Starfleet and go pilot freighters.