This helped get me going down the right path. I was able to use the LaunchGPTool to get it to work properly, but that pops up the Get Parameters GUI (even though it is populating the parameter automatically from the token) and I want this step to run without any input from the user. Therefore, I switched to ExecuteGPTool and kept all of the same arguments, but it no longer runs the script properly. It is like it isn't getting the JOB_ID parameter now. Do I need to change my script to not use arcpy.GetParameterAsText in order to use ExecuteGPTool? I've tried using arcpy.GetParameter and sys.argv, but neither of those worked.
Turns out the above isn't true. It does work, but not if it is running when the job is created. The job is set to auto-execute several steps immediately after creation including this step. The return code for this step though is 1, so failure. If I reset the workflow to this step and reexecute it, it still says it fails. If I close and reopen Workflow Manager, and then rerun the step, it completes with success. I just added in a loop based on failure or success, it just goes to a procedural step that automatically executes and advances and goes back to the step so it can execute again. I tried creating a new job with this updated workflow and it appears to be stuck in a continuous loop in the job creation. Because it must be failing over and over. I killed the application and reopened it and found the workflow at my update step, ran it, and it completed just fine. Why won't this step complete if it is being executed during the job creation?
Since my original question has been answered, and the issues I am now having are not related to that question. I have created a new discussion for that issue. It can be found at ExecuteGPTool step will not run successfully if auto executed during job creation