You can reorganize your code by creating new templates to introduce smaller life cycle events into child templates.
HTML
<template name="navbar">
<div class="navbar">
{{#if currentUser}}
{{> logoutButton}}
{{else}}
{{> loginButton}}
{{/if}}
</div>
</template>
<template name="loginButton">
<button class="login">Login</button>
</template>
<template name="logoutButton">
<button class="logout">Logout</button>
</template>
Js
Template.loginButton.onRendered(function(){
console.log(this.$("button").text());
});
Template.logoutButton.onRendered(function(){
console.log(this.$("button").text());
});
autorun Template.navbar.onRendered / DOM Tracker.afterFlush.
HTML
<template name="navbar">
<div class="navbar">
{{#if currentUser}}
<button class="logout">Logout</button>
{{else}}
<button class="login">Login</button>
{{/if}}
</div>
</template>
JS
Template.navbar.onRendered(function(){
this.autorun(function(){
var user=Meteor.user();
Tracker.afterFlush(function(){
console.log(this.$("button").text());
}.bind(this));
}.bind(this));
});