Since there is no way to know the TaskQueue count programmatically according to AppEngine Taskqueue: is there a way to determine the queue depth? , I am thinking of using the cache to monitor the queue. Is it advisable or is it a cardinal sin? (I know that cache cannot be 100% reliable, 89% reliable-ness is fine for me)
Its not a question of reliability, cache can be cleared at any time and then your left with zero. you need to store the count in the datastore.
Look into sharding counters for a tutorial on how to have good write throughput on the datastore.