Currently, there is no way to terminate a play process other than waiting for its completion or a hard kill.
This is because signals are not properly processed and passed to the C++-layer.
Implement proper signal handling throughout rosbag2 (affecting at least ros2 bag play, possibly other commands).