Personally I don't like the thought of a standard xp system at all. It just seems too, overused. Instead, when you start the game you pick a "specialty" for your Captain from a large list. Are they a small ship tactical expert who can give more types of orders to more precisely control small craft, and generally boost the abilities of small craft hes personally captaining? Are they a charismatic Captain who can squeeze in an extra officer or two and/or boost the abilities of his officers?
And then as TIME goes on, periodically "training" slots open up for your Captain, where they can train up some other secondary skillsets, or improve his existing ones. Maybe they takes a crash course in subspace engine systems, to provide a small boost to combat and system speed, not as much as an engineering officer dedicated to that, they ARE the Captain, they can't spend all their time inside engineering after all. Or maybe they take some time to improve his existing charisma and leadership skills, and can fit even more officers and/or give them a bigger boost, etc.
Your Captain wouldn't level up directly from combat. Combat adds to their experience, of course. But every second of someones life adds to their experience. Dealing with their crew, their officers, managing their fleets and objectives, combat, dealing with ship problems, everything adds and builds an individual. Just getting XP's from combat seems so... boring? It may be all well and good for common crew members, and maybe even officers, but for the players own persona, I think they should get something a little more special.
So to sum up my suggestion. Over time (actual game time) your Captains betters themselves, trains themselves, pursues new skillsets, etc. Now, getting a "level", say, every couple of months like clockwork would be weird and all, so I'd suggest once you hit the minimum amount of time to get a new training slot/point/whatever you have a percentage chance to get a new "slot" every day till you get one, a chance that slowly rises with time until you're guaranteed to get a slot, then it resets back to 0 and starts counting again. Now the problem could arise that someone just sits around and does nothing/ leaves their computer on and goes off to get free "levels", and we can't have that. So I'd suggest having a system in place where the level timer stops moving forward at certain points ( ever 5 or 10%, or 25% ,or something) until the player does SOMETHING. A battle, a random event, a mission, something that requires player input and reasonably adds to a captains "experience", unlocks the timer and allows it to continue.
This way, your Captain develops and grows over time, naturally, into a unique, individual Captain. This system could easily be made more intricate and complicated, or streamlined and simple, and shouldn't be TOO difficult to implement, I think. Well, this is my two cents, peace.