The service account should not need to be a local admin, and I agree with you, I think it's a bad idea.
Here is the description of the SQLServerSQLAgentUser$MYCOMPUTERNAME$MSSQLSERVER group on my server.
Members in the group have the required access and privileges to be assigned as the log on account for the associated instance of SQL Server Agent.
That seems to point to the exact issue you're having, getting the service account the necessary permissions at the OS-level without granting Administrator.
I just ran a search on all ACLs on my machine and this is what my local group is able to access:
1. Full Control over C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\JOBS
2. These effective permissions on C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log
Traverse Folder
List folder / read data
Read attributes
Read extended attributes
Create files / write data
Create folders / append data
Write Atributes
Write Extended Attributes
Delete subfolders and files
Read permissions
You could create your own group, grant it these permissions, add your non-admin service account to it an give it a go. It may not get you there since there could be registry permissions or other local policies in play but it's worth a shot. If not then you could consider opening a ticket with Microsoft....or simply uninstalling and re-installing from scratch.
There are no special teachers of virtue, because virtue is taught by the whole community.
--Plato