How to find out the terms which are not being used for some duration
Actually the reason for that is that the ti.created column is "The Unix timestamp when the node was created."  It does not track the time when the tag was applied to the node, rather the time the node was created.

So that will always have the same value for each row that describes the tag associated with any one node.  Look at this screenshot of my taxonomy_index table that displays three different tags I just applied to my node at different times:



From what I can tell, if you wanted that functionality, you'd have to store that timestamp (when a node was actually tagged) in your custom module yourself and you'd have to query that value.

Anyway, hope this helps clarify the issues a little.  :-)