The code responsible for processing of JOBONQ command and the processing really omit held jobs. Unfortunately it was designed that way. We will update documentation of JOBONQ command to better describe the behavior. In case you would like to change the behavior, open new idation please
Also using JOBONQ this way it will return a job number of zero. When JOBONQ has third parameter only "I", ESP is looking for jobs in processing phase too. Those jobs are not yet on JES and therefore the jobs don't have jobnumber. That is the reason why you see jobnumber of 0. When you code third parameter as "IH" ESP will not look for jobs in processing phase and will include held jobs in JES too.
A DOC update will be created to explain this behavior which is working as designed.