A big part of why there are so wildly differing accounts regarding punctuality of German trains is that a lot of the delay is limited to a few specific lines that are overloaded even on the regular schedule. Most of these lines are on the dense part of the long-distance network [1], around the Ruhr area and the Frankfurt area.
By contrast, I usually use routes in Eastern Germany, such as Dresden-Berlin-Hamburg/Rostock. These lines have been recently built and are not overloaded, so services are nearly always on time (or, at most, 10 minutes delayed) and connections are very reliable.
It's not consistent across the entire country, sure, but my wife had difficulty on trips to Munich and Graz in the last few weeks, my nephew on his trip from Berlin to Hamburg last weekend and don't get me started on trying to get to Brussels or even the local closures in Hamburg of the S-Bahn U-Bahn. The issue is as much comms as it Engineering work.
They know they're doing engineering work, but do they allow for it? No. The bus goes, oh I can't go any further, all passengers get out and continue on the S-Bahn. Walk into S-Bahn, platforms all closed.
Arrive at HBF, 15 minute delay. Keeps changing. Keeps going up. No reasons given.
Journey to X, shortly before arrival, oh, the station is shut we're going to stop early. No notice in order to help friends and relatives reorganize.
Fuck me, the UK is bad at a lot of things with public transport, but it is better coordinated than this. The roads are the same, random closures, no diversions set up, no planning with other closures to check they're not trapping people inside loops.
It's the focus on cost rather than correctness that is frustrating.
I still don't want to travel by train in Germany, because the service right now, quite bluntly, is shit. Delays, overcrowding, poor communication.