(Edit: I noticed I forgot to explicitly answer the main question. Yes, as far as I can tell it is grammatically correct.)
終わり is the so called 連用形（れんようけい）"connective form" of 終わる. This form does indeed serve as ます-stem, but it can also serve as a nominalization of the verb. In this case 終わり means "(the) end".
In fact, the 連用形 ("ます-...
This しね is not 死ね, but the particle し, which conveys that the clause is one reasong among several, and the end particle ね serving its usual function. とも言います is essentially just 'they [also] say'.
難しくて is the て form of 難しい. It indicates that there's more to the sentence left unsaid, like 'Japanese is difficult, [and so I messed up]'.