Функции, пытающиеся записать в канал done блокируются, пока канал не будет прочитан.
Предлагаю такое исправление - в функции main запускать SingleHash(done, in[1:]) как горутину, чтобы не блокировать main и перейти к ожиданию ответа из канала done. И в данном случае go func(done chan interface{}) нужно будет выполнить синхронно, а не горутиной.