pure_pursuit only controls lateral movement - not longitudinal - so it does not cause the vehicle to stop. velocity_set is a node which typically causes the vehicle to stop and the conditions depend on your parameter settings. However, in general, velocity_set looks for lidar points within a certain sphere around each waypoint. If the number of lidar points within that sphere exceeds a threshold (set in your parameter settings) then it reduces the velocity to 0 before that waypoint.