I posting this primarily as an FYI for anyone else who has been encountering the same issues I have been.
I'm running Windows 10. I use a Surface Laptop 2 with a Surface Dock. They are both up-to-date with respect to updates (including firmware updates). I occasionally run Event Viewer to see if any "Critical" or "Error" events are being reported. For as long as I can remember, there are a multitude of errors being reported by the SurfaceSerialHubDriver, with event ids 5, 13 and 14. No matter what I tried, I was unable to diagnose the cause of the error. The errors were typically being logged upon system start up.
A couple of days ago, I drilled into the detail of other errors to see if I could get any inspiration for resolving this. One of the other errors in the Event Viewer was for Kernel-Power, event 137. The information for this identified a problem with changes to the memory type range registers (MTRRs) across a sleep state transition (S5). Futher digging into this lead me to disable the fast start-up option (see Control Panel > Hardware and Sound > Power Options > System Settings or alternatively, click on the "Choose what the power buttons do" in the Power options within the Control Panel). You will need to be an administrator to do this but that can be achieved via the link towards the top of the control panel screen.
Since doing this a few days ago, it stopped logging in Event Viewer that an error occurred for the SurfaceSerialHubDriver. Similarly, I have seen a cessation of error events for Kernel-Power and NDIS in Event Viewer.
Your actual mileage may vary but if you do see a similar situation with your machine, please try the above steps and post back here to identify whether or not it resolved your issue.