Snippets of code and fun.
I had been tearing my hair out with his problem, and I cannot take any credit whatsoever for the solution. I fully thank Prasanjit Mandal for his excellent blog post here http://prasanjitmandal.blogspot.com/2010/06/sharepoint-timer-job-stuck-at-deploying.html on how to solve the following problem. (Please excuse the lack of pictures, I am not able to get screenshots of the problem at this point.)
I have a load balanced, two-server SharePoint farm environment. I manually deploy InfopPath forms through central admin on this farm environment. The problem that I get is that, probably due to a mis-configuration of the farm environment, the installation/deletion of forms (i.e. WSP files) stays stuck in the "Installing" or "Deleting" stage. This problem is the same as the WSP package getting stuck in the "Deploying" stage, which the blog post by Prasanjit is about.
The reason for this is that the a timer job runs at a given interval which deploys the WSP package on server 1 and then on server 2. Each server has a timer service running which runs this timer job. The blog post by Prasanjit has very good steps on how to solve such problems (stopping the service on each server, starting it, running a command line prompt command), however I found the shortest-path to solve my problem (using Prasanjit's steps).
1. In Central Admin, delete the form or install the form (do the process which gets stuck)2. On both servers, manually run all the timer jobs, i.e. do not wait for the timer service to run the job3. Do this by going to your SharePoint BIN directory in command prompt, most probably it is: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN4. Run the command stsadm -o execadmsvcjobs
The command will run all the timer jobs that are scheduled for that server, which for some reason are not running and which cause "Installing" or "Deleting" or "Deploying" to be displayed perpetually in Central Admin. In my scenario, server 2 was not running its jobs, so I had to run this command only on server 2
A drawback of this "manual force" approach is that if you open the timer jobs window in Central Admin, you will see the deployment timer job for your WSP still there...waiting to be executed; even though it never will be. I manually delete that timer job since I know I have already run it.