Firstly, I believe UE4 only allows to import sockets for static meshes and not for skeletal meshes. So what I was importing wasn’t sockets, it was just adding them as bones to the rest of the skeletal tree.
Still doesn’t explain the weird transform inconsistency. But it turns out having them imported as bones was even better. I simply added the socket within UE4 to the imported socket bone. Then I adjusted the sockets transform with the equivalent opposite value of the inconsistency and now the placement matches pixel perfect with what I see in blender.