This type of hang is often a result of running the System Exec.VI with the "Wait Until Completion" input set to True, which is the default value. Windows applications return a system event that LabVIEW recognizes when they are terminated, so when they close the vi can finish. Most DOS executables will not create this event when they terminate, so LabVIEW has no way of knowing that it can proceed. The easy way around it is just to set the "wait until completion" input to false. If you wan't your DOS executable to finish before LabVIEW continues, you will have to insert a delay into your LabVIEW program or find some other way of detecting that the executable has finished.