I don't like blinding stacks, but we do it in limited circumstances. Here's my approach, and since switching to it, it's worked well.
Players who arrive before the game get an "early bird" bonus (about 12.5% of their starting stack most games). Late arrivals don't get that bonus unless they prepay. They can pay through Zelle and some take advantage of that, but not many. If they prepay, they get the bonus. This is how we blind their stack. When the BB hits the stack, we remove the SB and BB from that stack and from the game. That stack doesn't get cards. That player not being there doesn't affect other players at all. No dead money in the stack to win, and no player getting the advantage of effectively being on the button twice a round. Ultimately if they don't show, their stack has no impact on the game and their money isn't in the game. I've not actually had that come up yet.
I explain it like this. You paid to get the early bird bonus, so you get it. But if you then don't show up on time, your stack is effectively blinded as a late fee. You are still way better off paying early, having your stack blinded, and possibly sitting out 2 hands if you arrive at the hand where we blinded your stack and you have to let the button pass your seat.
We cut off the registration period at the 2 hour mark. The bonus is way more than if they have their stack blinded, so they start with more chips by prepaying.
Originally, I just gave a player a full stack when they showed up and they drew for an empty seat. That was simple, but had 2 problems. [1] It didn't encourage players to get there on time, so starting time started lagging. [2] Some players who got there on time felt like they got cheated because the late arrival got a full stack. And when one of those unhappy with the policy got KO'd by a late arrival, they complained it was unfair. I think that is a ridiculous argument, but eventually I realized that perception is out there and no matter how you explain the logic that they arrive late they start with fewer big blinds, players who didn't like it were vocal about it. So then I tried something different.
I went to empty seat stacks and blinded those empty seat stacks the same way (remove chips, no cards, no impact on the game) so late players paid something for not being on time. That was an improvement in the perception of fairness department, but that was a bigger pain to manage, and depending on who was having to do it at different tables, it wasn't handled consistently. Seems like everyone has slight different ideas about what should happen and that was part of the problem. At least no one could complain it was unfair, right? Wrong. Some don't like taking chips out of the game. That's another bad argument -- those chips were never in the game. But there is also no way to do that without impacting other players.
What I really wanted to was get started on time. The early bird bonus is the best thing, by far, that I've ever tried to accomplish that.