You can avoid repeating the main return statement by nesting the schedule's:

return this.app_.schedule(... {
  if (undefined === this.isSuJoined_) {
    this.shell(...);
  }
  return this.app_.schedule(... {
    // At this point isSuJoined_ is guaranteed to be defined.
    return (this.isSuJoined_ ? ...);
  });
});