report bootstrap phase when we actually start, not just unblock something
Right now many bootstrap events get reported when the preceding task has completed. This makes it somewhat harder to tell what has gone wrong if bootstrap progress stalls.
[edit: The following isn't necessarily the best way to fix this. It might be better to figure out how to report starting something when actually starting it.]
We should add completion milestones to bootstrap reporting. This makes bootstrap reporting more future-proof. If in the future we add a time-consuming task with (no bootstrap reporting) between two existing bootstrap tasks, it will be a little more obvious what's going on.
For example, say we have task X followed by task Z, but then we add a lengthy task Y without adding bootstrap reporting to it. In the old scheme without completion milestones, if Y stalls, the user sees:
- starting X
- starting Z
- [hang] The user thinks Z has already started when no such thing has happened because Y is still in progress. If we add completion milestones, the user will see:
- starting X
- finished X
- starting Z
- finishing Z in a normal bootstrap. If something gets stuck in task Y, the user will see:
- starting X
- finished X
- [hang] This will make it more clear that something got stuck in between tasks.
In a one-line display like Tor Launcher, the completion milestones will normally flash by quickly and not be very visible to users. Completion milestones might make the NOTICE logs a bit more verbose.