I have a functional, if barely tested, unarchive module ready for interested folks to take a look at:
http://github.com/pileofrogs/ansible_unarchive
It handles gzip, bzip2 & xz compressed as well as uncompressed tar files
It detects if the archive has already been unpacked and returns changed=False appropriately
The readme on github has a lot more notes
Any feedback is awesome
-Dylan