If you go with option #2, use the oil based kilz. I had to take care of the same issue a couple houses back. It was the cat house. We weren't aware of the issue as we bought it in the middle of winter. Boy, what a surprise when the heat got turned on! I kept telling my wife it was the smell of money. We used the oil based Kilz on every square inch of sub floor and the issue was resolved...although you have to deal with thoose fumes for a week or so. :)
I sprinkle baking soda on it and around it, letting it sit overnight, then vacuum it up. Usually works pretty good, but if the smell is really strong, it may take a couple of times..
Also there are products for sell in pet stores that supposedly have enzymes that take care of the smell, but I have never used them, so...
There is a product called 'Simple Solution'(not simple green) You
get it at a pet store. It will take the smell out. I buy it by the
gallon for less than $20. per gallon. You will mix it with water and
have to experiment on how strong you need it. It will leave it with
a clean smell as it has little smell of its own.
I know of a carpet cleaning company that guarntees they can get pet odors out. The company is D&S carpet cleaning. Their phone number is 816-781-6760. Be sure and tell them Dave from Grace Properties recommended them.