I'm doing this for my game that I'm about to release. The way I implemented it was through a global variable called ads_enabled. I'm also storing this in webstorage. By default it's 1 but when a user purchases the 'remove ads' product then I set this to 0.
Next I have logic that only displays ads (both banner and interstitial) if the ads_enabled flag is 1. If it's 0 (remove_ads has been purchased) then you don't need to display any ads. I noticed cocoon randomly displays banner ads sometimes even after you've hidden them so I added a little bit of logic to hide banner ads if they get shown when the ads_enabled flag is 0.
As for interstitial ads, I'm using Chartboost as my network. Every time an ad is shown, there's a 'X' button at the top right corner of the ad to dismiss it so you don't need to mess around with timers.
But one major problem I'm facing right now is with restoring purchases. The restore events don't seem to be working within C2 or cocoonjs. So if you're user buys remove_ads and then clears the cache or re-installs the game they be shown ads again :( I've posted this on Ludei's forums but no response yet.