Dead code, possible races, in NT service code
So, the nt_service_set_status function does nothing. (At least, not without a subsequent call to SetServiceStatus_fn, which there isn't).
Also, everything that sets or checks dwCurrentState in ntmain.c needs to be checked for race conditions, and to make sure that it isn't missing a call to QueryServiceStatus and/or SetServiceStatus.
(Reported pseudonymously on IRC. I probably have some details wrong here; more investigation will help)