To me, there is a difference between "coach, I am committed, but I want to make it public on [insert date before signing day] because [insert reason]" and "coach, I am committed, but I won't be making it public until my televised signing day ceremony." I am cool with the first, I am wildly suspicious of the second.
As for the choices...
on 1: Worst option. Pressuring teenagers into publicly committing is part of the reason we have so many **** decommits.
on 2: If the silent commit is discernibly superior to the kid who is ready to publicly commit, this is probably the best option. Game-changing talent warrants holding "silent" spots. Let the public kid know he is a priority, but space is limited and you have a guy who has silently committed ahead of him. Be real. Remind him that sometimes silent commits don't stay committed. Let the kid know he's wanted, but that we understand he needs to keep his options open. Tell him you understand that he needs to be smart. But before accepting a commit from another school, let us know so that we can see about making space for you (by pushing somebody else out, if necessary). The goal is to honestly communicate the issue without making the kid feel unwanted or unimportant.
on 3: If the silent commit isn't all that much better than the kid ready to publicly commit, you take the public commit. Or if the kid who is publicly available to commit is "UM caliber" and also happens to be highly respected by other recruits (see, e.g., Ron Delancy), you take him over the silent. If the kid who is ready to commit publicly isn't popular with local recruits in our alleged pipeline/local schools, or is outside of schools we have good relationships with (or are trying to establish those relationships with) you take him with the internal understanding that we will drop him if the silent kid is actually willing to sign.