How can I get the actual SSAS error when processing a cube from a SQL Agent job?
It's been a while since I did this and I don't have a test setup, but to get a single event you should probably use the OnTaskFailed event instead of the  OnError.

That won't get you the error you see when processing the cube manually but should at least give you a single mail.

See this article on SSIS error handling.


  OnTaskFailed
  
  This event is generated only once when a Task "failure", independently
  of failure occurrence be in the Package context or just in a Task
  specific.