Couldn't this be easily stopped if there was a limit on the difference between two blockchain heights was put into effect? because as far as I know the litecoin client currently accepts the longest chain as the most valid one. So this would prevent something I would call "chain hopping" on the client.
Yes. It's quite simple.
Find this line in your code
bool static Reorganize(CTxDB& txdb, CBlockIndex* pindexNew)
and change it into this
// bool static Reorganize(CTxDB& txdb, CBlockIndex* pindexNew)