Task up-to-date but OutputFile not created

You could use TaskOutputs.upToDateWhen(Closure c)

eg:

class MyProcess extends DefaultTask {
   MyProcess() {
      outputs.upToDateWhen {
         outputFile.exists()
      } 
   } 
   // etc
}