Actually looking back, what I'm doing is multiplying the normalized difference between the mouse position and the plug position by a constant and setting that to the plugs linear velocity in _physics_process. I honestly just messed around with a bunch of random approaches until I found a compromise between least buggy and sorta functional. I found it pretty hard to get the rigid bodies to behave correctly, it was a lot of trial and error.
Yep I did try that, but I'm a bit confused about how that's supposed to work in code because it's not like changing the body mode all of the sudden gives you access to the normal kinematic body methods like move_and_slide... There's definitely a better solution then what I landed on, who knows if I'll ever get to implementing it though haha.