Как строить и деплоить Go-приложения?
1. Нормально будет как внутри единого процесса крутить (с помощью какого-то robfig/cron, к примеру), так и отдельными процессами (cron-задачами, или даже демонами). Здесь всё зависит от конкретной ситуации и того что Вам нужно. У каждого подхода свои очевидные трейд-офф'ы. Просто выбираете то, что Вам больше подходит. На кодовую базу это мало влияет, ибо всегда можно переиспользовать пакеты, да и вообще можно держать всё в едином бинарнике, просто прокинув разные CLI-интерфейсы.
2. Горутины не могут быть пошарены между несколькими серверами. Если Ваши амбиции влезут в один сервер, то на внешние очереди можно не грузиться.
3. Если речь идёт строго об одном процессе, который нельзя размножить, то смотрите в сторону graceful updates/restarts. Если же Вы можете множить приложение (в конце-концов живём в век победившых Docker/Kubernetes), то есть более общие техники, подходящие абсолютно для любого приложения: blue/green deployment либо rolling update (в том же Kubernetes из-коробки).
По поводу строительства не знаю, но вот по поводу деплоя немного подскажу, вдруг полезно будет. Вот статья на Хабре: https://m.habr.com/ru/post/421087/
В своё время замучился искать, как это правильно делается.