I don't think this is what is happening. I guess You interpret it wrong, can You show printscreens or short film ?
WHat I see is:
-ball is following mouse at start
-you click, isshot becomes true, elif line kicks in for ONE frame, linear velocity becomes 200,-200 for ONE frame teleporting ball to the top right
-isshot is true, need_force is false, so neither of conditional line work, RIgidBody is moving in a built-in way till the end
Use apply_force instead of linear velocity when dealing with RigidBody. When mouse is holding your ball get the direction ball is heading ( mouse global position - ball global position ) one line before you set balls position to mouse position. Then, when you release your button, use this direction to apply force to Rigid Body ( direction.normalized() * speed), this way it can actually be done in ONE frame.