1. You nil out timeLeft once in a while. This will only break the sorting as it has no value to compare against.
2. You set timeLeft irregularly on buttons.
3. If you use my CustomAuraFilter function you'll have a conflict between the two timeLeft values, especially since yours doesn't always set it. I'm guessing this is the case as you said it didn't error
. If you remove it, it will however.