Sonia should have been home by now. Do you think she’s OK?
这个 should是表示推测, have been ... 又是表示现在完成时吗?
你的理解是对的,should在这里是表推测“应该,估计”,用have been完成式是因为句中的by now。另外should 跟have done也有表对过去的事情的责备或后悔“本应该”,如 You should have told me about it earlier.