After a day of testing and looking at other people’s code I was able to get the desired effect.
I needed to constrain the two static meshes with
m_pick_up_actor->m_phys_constraint->SetConstrainedComponents(m_vr_controller_mesh, NAME_None, m_pick_up_actor->GetStaticMeshComponent(), NAME_None);
I also had to set the following properties on the constraint
Stiffness 5000
Damping 500
Contact 10
LinearBreakThreshold 5000000
I also had to disable and enable the LinearBreakThreshold when teleporting.
Here is a video of how it looks