Jeffrey Zhong, for patch v3-update, you clear the last assignment. However, the region could have been open on the dead server for a while, so we need to wait till the current dead server is done with log splitting to avoid possible data loss. For reset the meta location, the purpose is the same, to make sure the right meta log is split. As to the change in the master, originally, it expires the sever if it is online; the change is to expire the server as long as it is not known to be dead, i.e., it is online or unknown but not queued for SSH. For unknown, as you said it could have not reported to the master. But in this case, it is not going to report to master any more, since verifymetalocation is already failed.
The test can be in TestAssignmentManagerOnCluster if the tests don't share the same cluster. Since, the cluster is shared, if we restarts the cluster in the middle and the test fails, other tests are impacted as well. TestMasterFailove seems to be a good place.