For my parts 1 and 3 above, I was able to create a PowerShell script and it worked like I wanted. Great. Part 2, the uninstall, is a package. Thought about having all of these in a task sequence but then Jason pointed out this won't work as the TS runs in system context. Instead of a task sequence, I chained all 3 packages in the order I need to them to run. That worked!! Prompts show up and software is removed.
Chaining programs isn't elegant but might do the job. Script wrapper could work, but I’m not familiar with that.
However, I need to tweak things a bit as when each script runs it shows the command box window for both PowerShell scripts and the setup.exe uninstall program and is shown to the end user. How can I hide those, but not the PowerShell dialog boxes the script shows the user? For each program, I have it set to Run Normal, allow user to interact with program, run with admin rights and program can run whether or not a user is logged on and on the deployment I have it set to Allow users to run the program independently of assignments.
One last thing is when all the chained packages run, it shows up in software center and displays toast notifications. How can we prevent this?
Thanks everyone for the help!