Why do similar UV islands rotate differently when unwrapped?
Blender by default uses a pretty outdated algorithm for island packing, it doesn't account for cavities in shapes, it creates a bounding box and disregards the rest and also it really doesn't care for angles much, it only looks at optimal solutions, if it's a square, it'll be packed properly, but if it has cutouts or beveled corners blender may align it to those in order to pack it more efficiently (at least according to the algorithm) So there are a couple of factors here:

First your third longest island is touching both sides of the UV space (I marked one visible side by a vertical line). Since it's touching the sides Blender can't scale other islands any more so they're stuck at this size, really their position doesn't matter much it's still very inneficient.

Second factor is Blender's default algorithm doesn't have good tools for evaluating such situations and the efficiency of packing here, if you're looking only at the bounding boxes areas it makes sense to align the second (lowest UV island) to the angle it aligned it to.

This sounds really complicated but it basically means that if you cut the longest segment into a few smaller ones, it might fix it, if it doesn't you might try unwrapping a single poly, pinning it and unwrapping the whole island to fix rotation. 

When you're packing you have an option for rotation. But in general if you'd go with a different algorithm that accounts for cavities, simplifies the shape better (or at least looks at 3d angles) you wouldn't have this problem. It is being worked on I read but I have no idea when will it be integrated 

There are two good addons for better UV packing that may make packing later much easier but you still need to unwrap it correctly first.

https://gumroad.com/l/uvpackmaster

https://gumroad.com/l/UVShotPacker

If you have any questions let me know