I figured this out, and its actually quite simple.
First, make a function that only brings the arm down, lets call this BringArmDown(). Inside of this function, just have an if statemet to where if the limit switch is not pressed, rotate the arm. This is just a simple code to bring the arm down from shooting at the top.
In turn, to shoot from auto, you would need to make a function to fire the catapult, and then have it stop at the top (spin catapult, wait like 600 miliseconds, stop catapult), we will call this ShootCatapult().
Then with these functions, during auto, when you were to shoot, have the following code:
ShootCatapult();
BringArmDown();
However, to have the arm come down in a task inside of pros, change the code to look like this:
ShootCatapult();
pros::Task ArmTask1(BringArmDown);
Where ArmTask1 can be litterally any string of text, but for each time you call this task, add 1 to the number. This would allow for the next, lets say PID, in your autonomous code to run while the task of the BringArmDown function is running.
In addition, with the ShootCatapult function, you can add this same form of a task to make a momentum shot.
Hope this helps, and happy coding!!