The last part of it though, the umpire has to use his discretion and judge whether or not the runner would have advanced safely if the play had gone on without obstruction.
For example, if that play had happened the exact same way but the throw home beat the runner by 20 feet, the umpire could have called him out, even with obstruction. IN this case, since it was a semi-close play at home, the home plate ump ruled that the runner would have scored if he had not been obstructed.