As I see, you don't need to lock anything.
As you stated, you can stop the service doing dml. Do it for sure!
A) Can't you change datatype without using a second table? See: http://sqlserverplanet.com/ddl/alter-table-alter-column
B) If some data transformation is needed, you could add a new field to the same table, and use UPDATE to fill it up; than delete original field; than rename new field
C) You can still use the approach drafted by you without lock