Algo curiso é que "Gambiarra" é algo totalmente brasileiro. No Inglês não existe nada parecido, tem o workaround e o hack e ambos são para nos gambiarras. Isso na minha opinião implica que existem gambiarras boas e ruims.
Eu penso que a essência da gambiarra é encontrar soluções improvisadas para problemas, utilizando de meios que não foram originalmente projetados para tal finalidade.
Muitas vezes, as gambiarras são necessárias, apenas por limitação de tempo. Neste caso, claro deveriam ser soluções temporarias e substituidas. No entanto, penso que em outros casos as gambiarras podem ser necessárias por outros motivos, como é caso do fast square root e do TypeScript e neste elas podem ser a solução mais elegante e não a mais tosca!
As gambiarras ocorrem por limitação de recursos, sejam eles quais forem. Além de tempo, pode ser dinheiro, de força (de mão de obra), de conhecimento, de comprometimento, etc. Em alguns casos é um múltiplo disso.
Pra mim, gambiarra sempre teve uma conotação negativa. É o remendo tosco, o chiclete no lugar da argamassa, o débito técnico que um dia volta pra cobrar a conta.
O fast square root eu vejo como uma otimização esperta (e inusitada), mas longe de ser um remendo. E o TypeScript é uma solução elegante, que pra mim é o oposto de gambiarra.
Mas reconheço que muitos têm uma visão mais próxima da sua, e chamam todos esses casos de gambiarra, separando entre as boas e as ruins.
Uma vez quando estagiava, precisava configurar um ambiente numa distribuição Linux... No passo-a-passo que seguíamos tinha a expressão "dirty hack", acho que é a que chega mais perto da gambiarra que temos aqui.