Fit CATE Once: Model-Assisted Randomization Tests Without Sample Splitting