If you get "INVALID_FIELD:Foreign key external ID ... not found" error inside Batch result CSV file, you probably haven't added parent SObject to the task template, that you are using to transfer child records.
When you want to transfer records from child SObject that have lookup or master-detail relationship to another records from parental SObject (even child and parental - is the same SObject), you need to transfer these parent records as well.
To do that:
1) Add new custom External Id field to the destination parent SObject (if it does not exist yet). Ensue that you have both parental SObject and child SObject in the task template.
2) Use Field Mapping tool on parent SObject to link between source ID field and destination External ID field. This will fill External ID field of destination records with ID values from source records.
Now with Field Mapping tool you have to map source lookup (or master-detail) field to the destination External Id field.
You can see that the system will automatically recognize the type of lookup object and offer you most relevant field on the destination side.
View this article how to map external id fields:
http://support.forceloader.pro/solution/articles/22000190871-map-external-id-fields