Minor quibble: the Vector3 we give as a ref to SmoothDamp in ForceReceiver should probably be called dampingAcceleration. SmoothDamp presumes we are moving between two positions and thus needs a ref for the velocity, the derivative (rate of change) of position. Since we are using it to move between two velocities, the ref is actually an acceleration vector, the derivative of velocity.
You may be right on that. Good naming is the key to good self-documenting code.