Do garbled circuits run in constant time? It seems like garbled circuits should not be input dependent, and hence should always run in constant time. Just wanted to clarify if this is true.
No, this is not needed in general, for Garbled circuits are not meant to be reused (notice that while most are not, there is some research looking into reusable GC, but not much).

Furthermore, if you are using shuffled garbled truth tables, as you should, then timing discrepancies do not leak any useful information, as long as you do not reuse the circuit.