Ok I manged to find out that this was fixed when Epic added code for Rect lights
https://github.com/EpicGames/UnrealEngine/commit/8522799c64393b2ae1f2a23182670de857b9912e#diff-79f2853f5fc843939a1e9e73ced510ea
The fix to make the reflections of the baked lights with a source length > that 0 have the correct rotations are in SceneVisibility.cpp
PostVisibilityFrameSetup
Replace this
const float ZScale = FMath::Max(LightParameters.LightSourceRadius, LightParameters.LightSourceLength);
DrawSphere(&LightPDI, Origin, FRotationMatrix::MakeFromZ(LightParameters.NormalizedLightDirection).Rotator(), FVector(LightParameters.LightSourceRadius, LightParameters.LightSourceRadius, ZScale), 36, 24, ColoredMeshInstance, SDPG_World);
with this
FMatrix LightToWorld = Proxy->GetLightToWorld();
LightToWorld.RemoveScaling();
//Grabbed from the update when Epic added RECTLights
if (LightParameters.LightSourceLength > 0.0f)
{
DrawSphere(&LightPDI, Origin + 0.5f * LightParameters.LightSourceLength * LightToWorld.GetUnitAxis(EAxis::Z), FRotator::ZeroRotator, LightParameters.LightSourceRadius * FVector::OneVector, 36, 24, ColoredMeshInstance, SDPG_World);
DrawSphere(&LightPDI, Origin - 0.5f * LightParameters.LightSourceLength * LightToWorld.GetUnitAxis(EAxis::Z), FRotator::ZeroRotator, LightParameters.LightSourceRadius * FVector::OneVector, 36, 24, ColoredMeshInstance, SDPG_World);
DrawCylinder(&LightPDI, Origin, LightToWorld.GetUnitAxis(EAxis::X), LightToWorld.GetUnitAxis(EAxis::Y), LightToWorld.GetUnitAxis(EAxis::Z), LightParameters.LightSourceRadius, 0.5f * LightParameters.LightSourceLength, 36, ColoredMeshInstance, SDPG_World);
}
else
{
DrawSphere(&LightPDI, Origin, FRotator::ZeroRotator, LightParameters.LightSourceRadius * FVector::OneVector, 36, 24, ColoredMeshInstance, SDPG_World);
}