Please let me know how you finally resolved this.... i'm having the same problem.... I cannot stop SQL Server on my box. It's the Agent that actually won't stop.... my request times out and the Agent keeps running.
It's working now! I killed the Agent (using task manager because it was hung), then did the following:
1. Modify the SQLAdmin user so that Domain Admin is it's primary group. (had been set to Domain User). I don't know if this fixed anything or not.
(I know that a domain admin doesn't need to also be in the domain user group, but it was created that way by our systems admin guy.)
2. I then clicked on the "Reset Proxy Account" and "Reset Proxy Password" buttons... under "SQL Server Agent" properties => Job System tab. I had done this already, maybe it worked better this time.
3. Then the systems admin guy here helped me to see the problem. I had added the 4 user rights below to the SQLAdmin user for the DOMAIN.... i needed to add these 4 user rights to this SQLAdmin user for the LOCAL BOX. So i wasn't using "User Manager for Domains" correctly. Arrrrgh!
Here are the 4 user rights that i had to give to the account (on the local box!) starting the SQL Server Agent service:
1) act as part of the OS
2) increase quotas
3) log on as a service
4) replace a process level token
4. With these 4 user rights, i was then able to start the SQL Agent without the errors!
(And it now stops and starts without hanging... not really sure why it was ever hanging.)