Though I'd post an update to this as we've managed to get round the short stream duration issue.
It appears that YouTube was at fault. Simply put, you need to "Schedule" a stream in YouTube Studio rather than just going live. YouTube has an itchy trigger finger for killing streams that aren't scheduled and since using the Schedule feature we've been able to reliably get streams to last for weeks at a time, and sometimes well over a month! This video explains the steps in greater detail
and also offers a theory as to why it happens at all.
Based on the theory in that video I also adjusted a couple of default settings in OBS to stabilise the stream upto YouTube:
In OBS settings goto Advanced, then:
Stream Delay > Enable > Duration “30s”
Automatically Reconnect > Enable > Retry Delay “1s” > Maximum Retries “30”
You can set these however you like, these settings seem to work well. Also worthwhile tweaking AV, Bitrate, and general quality settings too.
Happy streaming.