So:
1) The SP receives and updates all fields every time.
2) Contention management is via a pessimistic locking mechanism. Effectively you lock the entire row/s when a user enters edit mode.
3) Therefore you don't need dataset/entity change tracking.
How does the lock work- do you maintain a lock table with table name and primary key? Are you locking records in SQL server as well? Or are you wrapping the whole edit process in some sort of long-lived transaction?
How do you handle "lunch lock"- is there a cleaner process that runs periodically to unlock permanently locked records?
I'm curious to know why you chose this approach. Usually pessimistic locking is regarded as a less desirable methodology, isn't it?
"... They ne'er cared for us
yet: suffer us to famish, and their store-houses
crammed with grain; make edicts for usury, to
support usurers; repeal daily any wholesome act
established against the rich, and provide more
piercing statutes daily, to chain up and restrain
the poor. If the wars eat us not up, they will; and
there's all the love they bear us."
-- Shakespeare: Coriolanus, Act 1, scene 1