Update: not to necro my own post, but I forgot an incredibly important detail!
Halsin's tent never went up in my camp! Thaniel was standing in a patch of dirt all this time, as was Halsin in camp before we went to Last Light Inn. When I had my last scene with him, he was also in camp, no tent to be seen.
He never spawned in my camp as a real companion after recruitment, but it's no miracle, he literally doesn't have an assigned spot. Thaniel didn't seem to mind the lack of tent and was happy to be in my camp, but it did cause a real issue with Halsin.
A theory: I think the game might be using different copies of NPCs, and I never got companion Halsin to spawn. When camp follower Halsin model outlived his usefulness and had no more scenes to be in, he naturally disappeared. The problem is that he wasn't replaced. But, I don't actually know if Bg3 specifically works that way.