Each staticmesh is assigned to a core. Some staticmeshes take longer due to their nature: More lights or shadows might be influencing them, they might have a higher res lightmaps, etc.
So staticmeshes might exist that simply take longer.
The lighting is done once all the lightmaps are calculated. So in theory it could happen that 99% of your lightmaps were calculated by most of your available cores and you are waiting another hour for one core to finish up its assigned lightmap. Unfortunately lightmass works this way and there is no way to “split” the tasks further (unless you split the mesh that produces that lightmap into pieces). In offline renderers different cores will get different “buckets” assigned. And you have control over the bucket size, you can make the buckets smaller, meaning more buckets to be distributed and more work is done in parallel. You reduce the amount of time were cores stay idle waiting for the render to finish.
If you ask me, ideally, Lightmass should distribute the work differently, as this also results in slight inconsistencies between staticmeshes lightmaps. The cherry on top would be to have a progressive and distributed rendering system like most modern offline renderers do.