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