Both will work as i’m sure you have proved already, but think about the lifecycle of the page… OnRendered happens (as the name suggests) once all the Dom elements associated with your template have been rendered, so if you wait until this point to subscribe you are going to provide a slightly worse user experience to your users.
OnCreated is the place to do template level subscriptions as described in the Meteor Guide
Given that the answer to your initial question was “use onCreated”, what is the issue your now trying to solve?
But again, if you think about the lifecycle of the page you will see why your global helper doesn’t work with subs that are created in the onRendered callback, by then the helper has been called once and you return tmpl.subscriptionsReady() which will return true (because no subscriptions exist yet).
Just use onCreated with this pattern (as per the Meteor Guide)