Have you tried using the sprite in this way:
Put the normal bg on the list-item
Put the hover bg on the hover-state of the anchor tag
Fade the anchor’s hover-state bg in the way you are now.
Theoretically that should achieve the same look and be preloaded.