As for the modules and ship types thing, you could say that these unlocks and the availability of these unlocks form a "skill tree", with each "level" of the tree unlocked by nebula missions. You could also say that some modules have a "psuedo-dependency" on the champion hull types, even if the modules don't have dependencies on each other.
The problem is that before availability (aka, nebulae missions granting access to them), the "next" level of the "skill tree" is hidden. Making this worse, the "skill tree" is randomized, so you can't even rely on memorization for it. Worse still, the unlocks are somewhat randomized even across different instances of the same mission type at the same nebula count. (So the rewards for doing mission X at nebula N may be different in each game where mission X happens at nebula N, even though the set of rewards for mission X are constrained somewhat based on race).
Because of this, you can't really plan your unlocks when you are pressured to spend them.
To deal with this you can either hold off on substantial unlocks until you gain enough information about the "tree" (aka, you complete a few nebulas and see what kinds of stuff were unlocked), and thus be left with a weaker champion for a good chunk of the game (note, in some lucky cases, you can get a good "path" after 1 or 2 nebulae, but as it is randomized, you may get a set of hulls and modules that don't play along very well at all until like 4-6 nebulae in).
Or you can choose only the modules that don't have dependencies on "unknowns", the base modules that can be mounted on any hull. (This one seems the most popular unless you get lucky with the unlock "rolls" early on)
I know that the "tree" is hidden because of the randomization (not even the game knows what order things will be availible at game seed), but that doesn't negate the negative effect on character progression (real or perceived).
I hate to say it, but I wonder if some degree of randomization needs to be taken out, and have some (or all) of the "unlock path" be visible and determined at game seed, possibly even constant across games.
Or possibly give a way to "respec", put all available modules back to Mk. I, but then you get all those points back. This will let you "back out" of a unlock path if the RNG didn't give you something that works well with it. (I guess it would scrap all modules on the champ, meaning this wouldn't be something you want to do mid battle. Maybe even make it cost something, like you have to be a 1000 shadow points and you lose all of them when re-specing)