I think it looks okay, but the notation is a little confusing. When you write ##f^{(k)}(e_k) = 0##, some people may get confused, and so I think it is better to write it as:

$${(f(e_k))}^k = 0$$

To signify you want the ##\text{k}^{th}## power of the morphism of the ##{e_k}^{th}## basis vector.

If ##{(f(e_k))}^k = M_{ij}^k = 0## for some positive integer ##k##, then you can go as far as to say ##M_{ij}^{\ell} = 0, \forall \ell \geq k##. This is intuitive because eventually with so many powers of the matrix, there will be enough zeroes to multiply and produce the zero matrix. Then you can assume every matrix power afterwards is the zero matrix.

If ##{(f(e_k))}^k = M_{ij}^k = 0## for some positive integer ##k##, then you can go as far as to say ##M_{ij}^{\ell} = 0, \forall \ell \geq k##. This is intuitive because eventually with so many powers of the matrix, there will be enough zeroes to multiply and produce the zero matrix. Then you can assume every matrix power afterwards is the zero matrix.

##f^{(k)}(e_k) = 0## means the k-th column is zero after k multiplications of M by itself, not that the whole matrix is zero, right ?

If you want help with the alternate proof, show some of your thoughts.

Sorry, I was very lazy yesterday.
Your idea is the most simple math proof ever ! My thought on this is (Wikipedia's thought ) is that the caracteristic polynomial is zero in ##A##, so that ## 0 = p(A) = (-1)^n A^n \iff A^n = 0##.
What a nice idea !