Yes, it is an inverse Jacobian method. The core algorithm is the same across ROS 1 and ROS 2.
It definitely does get stuck at times. Mostly with kinematic singularities. Servo handles these in a way that is safe but can be frustrating (slows down as the condition number increases, eventually coming to a stop). With obstacles, the behavior is fairly intuitive and the tuning parameter for it is just a threshold distance. Joint limits can cause problems as well (I’ve noticed this with UR5’s mostly).
The ROS 2 version was not tested on a real robot (but we have run the ROS 1 version extensively on multiple robots, HEBI, UR5). I am thinking about trying it out with ROS 2 on that same HEBI arm (because it would require little/no other ROS 2 parts), but I haven’t done it yet.