We are testing the 24.0.5 version now, and we see that the standard error and output are transferred back to the AP when the job is completed or removed but not when the job is held. Maybe we are missing something, but we are using the same configuration as in 23.0.X (and before).
I can't reproduce the problem: in both versions, I see the job's files in AP's SPOOL directory after running the condor_hold command. Do you see the files when you run condor_hold but in some other situation(s) when the job goes on hold? If so, could you be more specific about both the job and the situation(s)?
-- ToddM