I just had a similar situation where I was the hostess, and our friends coming over had let me know they needed to leave by 8 at the latest to allow their daughter to keep her 8:30 bedtime. Our daughter doesn't have such a strict schedule, but it doesn't matter.
I managed to prep everything from scratch after they arrived* while staying involved in the conversation and still had dinner on the table at 6:30, didn't ask them to bring a thing (though we did enjoy the wine they brought), and they left when they needed to at a little past 8.
(* Normally I'd have at least prepped if not cooked before they arrived but other things got in the way and I knew full prep + cook time was just over an hour.)
I guarantee if things had gone too slowly I would have kept my guests updated and asked if they would like an alternative (ordering takeout, more appetizers while waiting). Even if it's embarrassing to admit my failing as a punctual, organized hostess, it's better than not appearing to be a gracious hostess at all.
OP did the right thing by leaving when necessary. My own impression is that Annie thought OP's child would be as flexible as hers, given the opportunity, so didn't care to stick to an earlier schedule regardless of the agreement. Doesn't excuse it though, definitely a hosting fail on several counts.