>>46
Updateで書こうがコルーチン使おうが関係ないぞ?
GC云々と今回の問題は無関係なので、以降コルーチンは使わない前程で話す

Time.deltaTimeは60fpsで0.016前後。
Time.deltaTime刻みでしか推移しない値の絶対値が1.192093E-07より小さくなる確率を考えればあり得ないのは一目でわかるだろ

簡単に数値入れて説明するために、あるフレームのUpdate()が呼び出された時点の値を以下の様に仮定する。

timer=3.042f;
Time.deltaTime=0.016f;

この後timerからTime.deltaTimeが加算され、timerは3.508fとなる。
Mathf.Abs(3.05f-timer)は0.08となり、1.192093E-07より大きいので処理されないままtimerは3.05を跨ぎ越す。
以降Mathf.Abs(3.05f-timer)は増大して行くので永遠に処理されない。

無駄だが敢えてどうしてもMathf.Abs()を使いたいなら判定式は以下のような感じになるだろう
Mathf.Abs(3.5f-timer)<Time.deltaTime/2