My GAE application should upload several files to another server (with urlfetch usage). How to implement this with tasks with assumption that at the end of last task completion
You can make an counter entity, that stores current count of tasks to execute. And each task. after finish, must decrease value of this counter, in transaction. If it becomes 0, then it's last action, just finished.
The code you show won't work - the tasks you're starting aren't in the same local scope as the counter, and may not even be on the same machine. You could use a datastore-based counter as @splix suggests, but this looks like a case where the Pipeline library would be ideally suited.