Maybe add a few seconds wait after Restore purchases, before you check the 'has product', as it will take some time to retrieve the listing it from the store.
There is no 'Restore success' trigger with the native plugin -maybe it's the same as the 'Store listing success' trigger, as the restore is just downloading the list of products/prices/purchased items as far as I know.
I'm also having trouble with Restore purchases, but I'm using Cranberrys plugin and XDK (iOS). Cranberry's plugin has 'Restore Purchases Success/Fail' trigger, but I can't yet get restore to work. Will keep you posted if I do.
[EDIT] OK restore purchases is working for me now. I am waiting a generous 5 seconds from the 'Restore Purchases' to allow the listing to complete, and also waiting for a 'Restore Successful' trigger event before checking if the user 'Has a Product' and then processing.