Hmm, if she weren't repeatedly drifting off and then waking up during the first hour or so after you put her down, I would say it sounds like a classic delayed sleep phase issue. She may even be a natural night owl that finds it hard to go to bed or get up early. However, since she does seem sleepy by 8, I'm not so sure.

Still, I think it's worth a try to treat this as a sleep phase issue. As others have pointed out, it sounds like she's getting an appropriate amount of sleep for her age. Therefore, if you want her to be able to fall asleep earlier, you should probably start by having her wake up earlier in the morning. Leave bedtime as is, but wake her up 15 minutes earlier each day until she's getting up around 7. See if it takes her less time to fall asleep at night. You'll also need to move meals and nap earlier - basically you want to retrain when her body expects to be asleep and awake, which is the result of various biological signals including morning light exposure, mealtimes, etc. (I realize you may not want her up at 7! Simultaneously working on shortening the nap might be another option).

We have a biological night owl in our household and have to constantly work on this, but using the above we've been able to shift her daily rhythm earlier by about 1.5 hours. It takes constant vigilance/discipline, though. Left to her own devices, she would sleep roughly 11-9.