How can languages that are E-complete have sub-exponential size circuits?
What you're missing is that it might be hard to construct the circuits. In order for your algorithm to simulate the circuit, it needs to know the circuit, but since the circuit depends on $n$, you can't hard-code it &mdash; you'll need to hardcode an infinite number of circuits.

To give a simpler example, consider the following language:
$$
\{ x : \text{The $|x|$th Turing machine halts on the empty input} \}.
$$
This is an uncomputable language which has constant size circuits.

What could not be the case is that some language in $\mathsf{E}$ has uniform subexponential circuits, for a suitable notion of uniformity (given $n$, you need to be able to construct the circuit in time subexponential in $2^n$). Your argument would work then, since the algorithm would be able to construct the circuit in subexponential time.