Right, terribly over-complicated solution (and still imperfect), but: if you don’t wrap the link text in the , and instead just use the as a place to put your background image and position it absolutely within the , then the (mostly) stops blocking the :active state.
Test page: http://www.pauldwaite.co.uk/test-pages/2769392/3/
Link
Of course, the area that the covers still traps the click event, so when the user clicks on there, they won’t see the :active state. It is a slight improvement on the previous situation.