This is a good question! Over the course of my participation on SO and SSE, I tried to approach these situations in different ways, and in the end, I don't think there's a single "correct" approach.
First of all, keep in mind that question authors are in no way obligated to accept answers. It is entirely up to them whether or not they are satisfied enough with any answer to tick the checkmark. So we shouldn't leave comments that may be perceived as pressure.
Overall, I think there are two types of users that don't accept answers:
If you see that the user is new to the Stack Exchange network, and that may be the reason they're not accepting, then what I normally do is leave a comment on the question—something along the lines of:
Hi @username, welcome to the site! I thought you should know that you can accept an answer by clicking on the checkmark. Consider doing this for the answer that helped you the most, as this will indicate to the future readers that you've found a solution to your problem. There is no obligation to do this.
If the user is experienced with the network, and has already accepted answers in the past, that could mean either that they forgot to do it this time, or that their problem is not completely solved yet. What I prefer to do then is simply check on the author, rather than asking them to accept. The way I feel about it, my goal is not to get reputation, but rather to make sure that the author has received all the help they needed. Here's an example:
@username Have you been able to resolve the issue? If none of the provided answers worked for you, consider editing your question to include more detail about the current state of your problem.
I also do this for questions where I haven't participated, but I see that some time has passed and no answer has been chosen.
I don't believe there's etiquette on how long you should wait before leaving a comment. Just keep in mind there's no rush to choose an accepted answer. Sometimes it's good to wait, as the author will have more time to test the solutions he was given; and maybe someone will even post a better answer in the meanwhile. It's all for the best of our community, the way I see it.
You can also read through similar discussions on other Meta sites: