First is to figure out why it is skewed. The name MessageId implies something that is faily unique but a fairly unique field should hash and distribute nicely. Since adding Load_Dt to the PI makes it distribute better, it suggests that there are duplicate MessageIds across different load dates. I would look for data quality errors where there are zeros, nulls or something like that coming in every day in the MessagId field.
re you proposed solution: the JI on messageid will distribute exactly as badly as the PI on message ID. The JI may be smaller if it has only a subset of columns but it will be just as skewed. And of course it will be a load time cost to maintain the JI. Probably not worthwhile in this case unless the table has a large number of columns that can be left out of the JI.