я использую
TrackStudio.
вот здесь есть о том как его с git интегрировать как раз для ваших целей чтоб при коммите закрывалась задача при наличии определенной команды, при ее отсутствии коммиты добавляются как простое сообщение по задачи. также к сообщениям цепляются и патч файлы.
Также я последнее время использую
встроенный механизм интеграции с git, он ищет в указанном репозитории в коммитах номера задач #99 и прикрепляют эти коммиты к задаче с возможностью просмотра в репозитории.
по 3 пункту ничего сказать не могу не использую.