I think you could simplify this even further, and just have a morale penalty for all crew members if the ship is significantly below its optimal number of crew members.
While specialties are obviously important, on a real-life ship everybody pitches in when you are short-handed. Even if the engineer takes the brunt of it when you are short on engineers, your crew is a team, and everyone runs short of sleep when there is too much work to go round.
Given the feel of your game, I'd also go with something like that after carefully re-thinking it through. Actual crew count would be more relevant.
If its a 4 crew ships, having less OR more crew could both result in morale drops, so that, when attempting to go anywhere over 4 (and invading everybody else's personal space), you'd need to be damn sure you need that scientist onboard.