Bugfix: safe way of communicating two possible exit reasons
Use chan struct{} because we're only interested in the chan being closed
Fix logic for preventing go binary causing its own rebuild