Nah, you're doing it right!
A couple things I'd recommend, however:
Swap out the calling Pokemon every once in a while. Like you said, you kept it up till the Exeggute used Struggle. This can be avoided by knocking out the calling Pokemon for every 10-15 Pokemon it calls, depending on the success and frequency of the calls. That'll make chaining way easier.
Stock up on Leppa Berries. With such a long chain, you will inevitably run out of moves. So just use Poke Pelago to farm a whole load of Leppa Berries before chaining so that you're main chainer doesn't struggle himself to death.
Other than that, you've been doing everything alright! A shiny could very well take a while to get in a chain, so just be patient and keep doing what you're doing, and eventually, if you keep at it, it'll come! Happy hunting!