Ciao! Se vuoi settare il testo nel pulsante a bind avvenuto, devi spostare il codice che setta il testo del pulsante nel metodo onServiceConnected() della ServiceConnection perché il binding è asincrono e il "lifecycle" del service viene "notificato" proprio nella ServiceConnection che passi alla richiesta di bind.

Per richiamare un metodo del service, è proprio come nel codice che hai preso dal sito:
- Nel service crei una classe che estenda IBinder e che puoi personalizzare come vuoi. In quel caso la classe si chiama LocalBinder e ha il solo metodo getService() che restituisce l'istanza del service che è in corso.
- Nell'activity crei una ServiceConnection personalizzata che passerai nel metodo bindService(). Nel metodo onServiceConnected della tua ServiceConnection ti viene passata l'istanza della classe LocalBinder che hai creato nel Service, e quindi ne richiami il metodo getService per poter poi richiamare qualsiasi metodo pubblico del service.