On top of what was mentioned, additional time for speed restrictions due to future or ongoing maintenance are added in to the timetable as 'engineering' allowances.
And where a faster train is likely to catch up a slower train and be slowed down, or where a train might have to wait at a junction for a train to cross its path ahead, then additional time is added to the running time and these are called 'performance' and / or 'pathing' allowances.
Of course the running times in dry conditions can be quicker than when the rails are wet and slippery as drivers have to accelerate and brake more cautiously to avoid wheelspin and wheel slide. So the general running time has to reflect this too.
Some of the longer station dwell times of over 1 min allow drivers to catch up time where the actual time needed to load / unload passengers can be as little as 30 seconds or so.
But it seems that to standardise the timetable, dwell times of a minute or longer allow for slower boarding during the rush hour. I have noted that many Elizabeth line station stops are booked for a full minute, but late running trains are moving again in 30 seconds to try and recoup delays.
There is also the need to regulate running times so that trains can get a clear path at the many flat junctions and stations.
On the WAML, the overall running time between Liverpool Street and Cambridge - for example - has to be regulated by the need to path trains at the various junctions - Bethnal Green, Hackney Downs, Clapton, Broxbourne, Stansted South and Shepreth Jn into and out of Cambridge.
You could plan a much faster timetable than at present up to Shepreth Jn but then the train might have to stop there for several minutes waiting there for GN and Thameslink trains to clear the junction ahead.
Even if you could get a clear run through there, there might not be an unoccupied platform at Cambridge!! So slower running tunes allow junctions to offer a clear route and station platforms to be vacated.