I can't believe that you're asking this question rather than just doing the right thing. It is obvious by the tone of your post that you believe it to be morally wrong to keep the item, and are just trying to justify your reasons to do so. At the end of the day you haven't paid for the item, they've made a mistake, and everyone makes mistakes. No matter your treatment beforehand with them being a little slow in responding (there could be any number of reasons for this, not just them messing you about), it doesn't give you the right to keep something that you haven't paid for.
So, do the right thing, contact the company, let them know they've made a mistake, let it be on your terms to return the item, and maybe they'll give you something as a gesture of thanks? I can't believe the sense of entitlement of people these days. As soon as a mistake is made, it's like it's the end of the world, when really, it isn't at all. You don't deserve to keep something you haven't paid for. It's simple and even if the law doesn't state it, morally, that's theft.