I would suggest calculation of rating based on maximum between opponent's ratings at the start and the end of the game. It would protect against "multiply timeouts" problem as well as against "strong provision player" problem.
What about locking in ratings at the time the game started? Use whatever the players' ratings were when the game started to calculate ratings changes when the game concludes.