I'm not a good person to ask for advice regarding this stuff, as I myself am a newbie with the monetization and the mobile market. There are plenty of much more experienced devs than I that frequent these forums.
In regards to IAP, I do indeed use PlayerPrefs, but the value in player prefs is updated every time the application starts by checking with the IAP interface. If the transaction is found, that feature is unlocked by setting the player prefs value. If the transaction was canceled, same thing -- player prefs value gets updated. The rest of the game relies on the class that uses playerprefs for its data, so this approach works for both IAP-enabled games as well as not. I have no idea if it's the best approach, but it's just something I've come up with after some playing around.
One thing I have to say though, Google Play is a much more pleasant platform to work with compared to others. Updates are easy, only take a few hours at most, not days like in Amazon's or weeks like in iOS's case. Google Play also gives a lot of useful statistics, and lets you see exactly who bought the game, so when someone contacts you for support, you can easily verify if they are legit.
In regards to my reputation -- while I am indeed fairly well known in the Unity dev community, I am a nobody in the game dev world. Typical players have no idea what Tasharen Entertainment is, or NGUI, and certainly don't know "ArenMook"... so I think I am pretty much in the same boat as everyone else when it comes to releasing games.