The English idiom is "I had/ate breakfast" not "a breakfast". I don't recall ever seeing or hearing "a breakfast" in that context - it would require some special circumstances or statement, such as "a breakfast to remember" or "a breakfast like I have not had in years".
That's not an easy question to answer. The English idiom requires simple past: "I ate, I had breakfast two hours ago."
"I have had" is often used to refer to regular or repeated events: "I have always had breakfast at this restaurant."
The verb-form you used is also used in emphatic sentences: "I have already had breakfast, so I don't need more food."
Note that in both examples I give, the verb is qualified or modified by an adverb, ("already" or "always").
It's a specialized form that has particular uses, and the simple, generalized past event in the exercise is not such a use.
Well, in the phrase with "ago" it is rather hard to imagine an animate noun.
- come to think of it, I would treat inanimate and animate nouns the same with 2,3,4, 5,6 and so on (e.g., in metaphorical contexts like "two presidents ago"~два президента назад). You'll encounter a lacuna for "one" anyway: I do not think I can say "one president ago" or "twenty-one husbands ago" in Russian.
- when you have 1 or when there is no number, it is quite obviously Accusative: "неделю назад" = "a week ago". You are out of luck with animative nouns, though.
The details of how small numerals combine with nouns do not make much sense. It is that way because it "sounds right", and it sounds right due to the habits born when Russian had the dual number. When it fell out of use (over 500 years ago) the Genitive singular was hastily put there to cover the hole. In present day Russian there is no justification for the Genitive singular to be there (apart from native speakers putting it there).