Kapsel deinen Code weiter in Funktionen. Hab keine Scheu kleine Funktionen zu schreiben.
Für start und end kannst auch gleich DateTime Objekte erstellen. Dann sparst du dir das ganze rumkonvertiere.
Außerdem ist das Ergebnis von 0 doch richtig mit deinen Testdaten und es fehlt ein return in deiner Funktion.
Drei Fehler:
1. Erst mal hast du bei deiner if-Abfrage bei $task2->start vergessen den Formatstring mitzugeben.
2. Der Formatstring für die Uhrzeit muss H:i:s lauten.
Korrigierst du diese beiden Fehler, dann wirst du auch ein Ergebnis bekommen, welches aber noch falsch ist, denn:
3. Du testest die IDs nicht auf Gleichheit. Das sorgt dafür, dass er eine Task mit sich selbst überprüft.
Edit:
Ich würde den Code aber auch so in etwas aufteilen:
Meine php Kenntnisse sind aber auch sehr eingerostet. Vermutlich geht der Code noch hübscher. Ich hab schon seit etlichen Jahren nichts mit mit php am Hut gehabt.