Using GUIDs for ID makes the db less friendly to query. Writing down an ID of a row is much harder when it's a GUID. I know it's not normal for people to be directly working with the DB but it is a little bit of developer ergonomics.
Regarding the two operators being on call at once due to "write skewing"<p>> In the situation above, there will be a write skew if two of the transactions successfully commit. Even though no dirty read or data loss happened, the integrity of data is lost because there are two people assigned to be oncall.<p>Wouldn't it make more sense to have a separate table/single row to store it so the earlier mentioned row versioning checks could be used? Plus one could instead store the history of how the on call operator has changed instead of just having an "oncall now" boolean field against each operator.