Thanks @alrez
That wasn't the right solution for my problem.
https://sharepains.com/2019/09/27/retrying-after-failures-in-microsoft-flow/ gave me a good start to finding the solution.
I found that the body of the failing step contained the error message and status code. So I added a Scope and configured it to run after the initial Update action failed.
First I parsed the JSON of the body from the failed step to get the Status code, which I assigned to a variable called ErrorStatus.

I then added a Do...Until loop set to run until the ErrorStatus was 100.

I repeated the update action and configured the run after fail to update the ErrorStatus.
I then added another step configured to run after the previous step was skipped to Set the ErrorStatus to 100 to exit the loop.
I will probably refine this but it's doing what I need it to.