Few steps that you should see for this problem
stsadm –o enumdeployments
This will present some XML spew. It’s easily readable, so find your solution name and get the job id. Then cancel the deployment…
stsadm –o canceldeployment –id <id>
This command will cancel the timer job and you will be able to retract or redeploy your solution.