21 years seem extremely long and honestly I can't imagine how both sides managed to resist such a long time.
What did the people and soldiers in Candia eat ? Were there reserves of food so big or did they find a way to smuggle food in the city ? What about water ? Also how did the authorities and the command inside the city dealt with diseases ? Surely so many men staying such a long time inside a city created diseases.
The sames goes for the Ottoman troops. According to Wikipedia they were around 60,000 men and to sustain them for two decades seem very expensive and hard to do. Plus I dare not imagine the surroundings of Candia after a couple of years of thousands of men foraging for food ...
And what was so important about Candia that make the Ottomans want it so much , Was it about the army inside, too important to let go ?
Both sides were supplied by sea and frequent naval action took place in attempts to block the supply for the enemy force. The siege took so long because the Ottomans were unable to completely blockade the port and the Venetians could thus supply the garrison.
Candia was a strongly fortified and very good harbour from which the Venetians could control much of the trade in the Eastern Mediterranean - and raid Ottoman trade (which the Knights of Malta seem to have done with Candia as an outer base). Crete itself was home to many sugar plantations and while sugar had dropped in price since the French, Dutch and English colonised the Caribbean sugar islands, it was still a very profitable crop.
The Ottomans wanted to protect their trade, acquire Crete and its profitable sugar proto-industry and Candia was in the way.