My money is on the additional git pull
is unnecessary, because of the code here:
which seems to check the local version, updates and restarts the launcher if out of date (and a bunch of other things).
Therefore only this should be necessary on subsequent rebuilds:
cd /var/discourse
./launcher rebuild app
without the redundant git pull.
(NB: always good to dive into the source code so you can be more sure).
(NB#2: have deleted my post above which just added to the confusion).