The 2013 SP1 Publishing Queue shows some great information for failures, including at which stage the publish failed and, for render failures, what the error was.
I have been looking through the documentation and the object model, and I haven't found how to obtain the same information.
There are other answers that use the event system to record this information, but I'm looking to get it in the same way that the Publishing Queue does.
How can I get the failure details -- state and render error -- from the core service?