onClick 호출 되는 Thread가 ui Thread가 아니라. 꼬이는 듯 합니다.
권한이 있다면, 아래와 같이 핸들러로 처리 해 보세요.
public class MainActivity extends Activity {
    private View mFaceDialogView = null;
    private Context mContext;
    private WindowManager mWindowManager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
        Button btn = (Button) findViewById(R.id.button);
        final WindowManager.LayoutParams mFaceDialogParams = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY,
                WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_TOUCHABLE_WHEN_WAKING,
                PixelFormat.TRANSLUCENT
        );
 
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                uiHandler.sendEmptyMessage(0);
            }
        });
    }
 
  private Handler uiHandler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
      switch (msg.what){
        case 0:
        addView();
        break;
      }
    }
  }
    private void addView() {
        LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
        mFaceDialogView = layoutInflater.inflate(R.layout.fingerprint_dialog, null);
        mWindowManager.addView(mFaceDialogView, mFaceDialogParams);
    }
}