Is the language TMs that accept finite languages Turing-recognizable?
If that method worked, semi-decidability would always imply decidability for infinite languages (note how you don't need any property of $L$ to make the proof work), which we know is not true.

Since your reasoning is sound, one of your assumptions has to be faulty. What you assume is, paraphrased:


  Assuming semi-decider $H$ for $L$, I can enumerate $L$ in lexicological order by using $H$.


You don't say how you do this, though, and we have already determined that you can not.

What you probably had in mind that we always get a recursive enumerator, and even a repetition-free one for infinite languages. Thus, it's the order that has to be impossible to achieve.

Intuitively, you can not reject $i$ as next output of the enumerator after only finite time.



Proving that $L$ is not semi-decidable works by reduction as well. See here for inspiration.

Hint:


   Reduce from $\overline{K}$, the complement of the Halting language.


Details:


   Define a computable mapping $\langle M \rangle \mapsto \langle M' \rangle$ so that $\langle M \rangle \in \overline{K}$ if and only if $\langle M' \rangle \in L$. For instance, define $M'$ by
 
 M'(y) :
   Simulate M(⟨M⟩) for y steps.
   if M halts
     accept y
   else
     reject y
 Note how $L(M') = \emptyset$ if $\langle M \rangle \in \overline{K}$, and
 $L(M') = \mathbb{N}_{\geq N}$ if $M$ halts after $N$ steps on its own code.