what's the purpose of SMART's captive test?

Captive mode tests run faster as the HD is doing nothing else... When testing is the first priority you should run that. If the HD is otherwise "in use" you should run the non-captive mode testing, so that your Server doesn't see the HD as dropped or something.