I haven't finalised where the bad block table will be stored. However I will only support it on v1.x metadata. v1.x allows me to explicitly exclude space from being used for data so that I can put other things there, like the write-intent bitmap or a bad-block table.
mdadm will get to decide where to put the different bits when it creates the array. I may be able to get mdadm to add an empty bad-block table when assembling an array if there is enough spare space - not sure about that aspect yet.
I would recommend v1.2 for new arrays unless it is a RAID1 that you hope to boot from, in which case you probably need v1.0 (or maybe even 0.90) for grub/lilo to be able to understand it.
There are a few features that are not supported for v0.90 (simply because the format is not easy to extend). bad-block-lists will probably be the first really significant one.