This is a good question, and one that is hard to answer concisely, among other reasons because I don't think there is one true objective answer to it all, but I'll try my best to tackle the issue.
I'll open my answer by highlighting the fact that closing a question is a democratic process that is subject to voting by the community. Why is this important?
I think it hints at the fact that evaluating the quality of a post is to a certain degree subjective and always subject to a some amount of opinion.
Some might think a question is too broad, some might think it needs more information, while others may be more concerned that it is too localized. Who is right? Everyone and no one.
A post may suffer from any number of those issues simultaneously some more apparent to a group of users, some to others; and yet even when the question indeed objective and clear some users may vote it for it being too broad. And on comes one of those highly experienced users and post an incredibly simple and effective solution to a traditionally complex and long winded task, or maybe he actually bothers to post a long and thorough answer to an unfairly broad topic.
What I mean is, some times even evaluating something as apparently objective as the "ontopicness" of a post may be down to individual users perception or even level expertise. What one may see as too broad or vague, may be explicit or simple to others.
Summarizing, the reasons for voting to close aren't always necessarily objective or perceived equally by everyone. While we may not always pinpoint a single exact reason for closing, I think we as a community have become quite good in general at spotting troublesome posts, even if we can't quite agree on a consensus.
I have yet to find an unfairly closed question by the community, even if I don't entirely agree with the reason. That being said, we might be able to establish some guidelines to help us be more consistent.
When to cast a vote to close a question as Needs more Focus or Needs details or clarity?
- Needs More Clarity - When there is not enough information to identify the issue, when the particular constraints of the user are not well exposed, or when the issue is clear, but there is not enough information to identify an adequate solution.
- Needs More Focus - The question is clear and concise, but there are multiple different issues that need to be tackled differently and all added together wouldn't easily fit in a single answer; or the issue is too broad that an adequate answer would be too long or require a "tutorial".
New users often miscalculate or underestimate the complexity of certain tasks which leads to often being unaware of how broad a topic may be.
Should we wait (how many hours?) for additional details before voting to close, or is it acceptable to cast a close vote and simultaneously request more information?
One long standing pet peeve of mine has been the wording Stack Exchange sites use when closing a question. The word "closing" has a very "final" and immutable weight to it. A more adequate term for me would be something less binding like "on hold" or "on wait", that would transmit the owner that is a temporary state that can be reversed once the required actions are taken.
Closing questions as it stands can seem hostile and scare away new users, that is even more pressing for moderators, which lose the ability to "vote to close" questions. As a moderator your vote is binding, and the question is closed immediately, placing a lot more weight on our decision.
That being said it should not be perceived as irreversible or a bad thing in itself, and I don't think we should ever refrain or withhold voting to close a post that deserves it. The act of closing in itself is not final, leaving a comment is optional, and the builtin close messages for all the various close reasons are designed to leave clear instructions for the post owner on how to proceed so it can be reopened.
Users are also expected to be around for a while after posting their questions for any followups deemed necessary (clarification, edits etc.), so any actual waiting should ideally be kept to a minimum. If they take no immediate action on any of the requests we can safely close the question.
If one is feeling particularly helpful and wants to put in the extra effort to leave an additional bespoke message, then we totally encourage it, especially if it is a new user, or the question was closed without any prior comments or requests for improvement. It is certainly encouraged, but not at all mandatory, I often, but not always try to do it myself, but that takes time, and is a luxury one can't always afford.
However, how can we distinguish between a user who genuinely needs guidance and one who hasn't made any effort to research or provided anything that they have tried?
I like reminding myself from time to time that the ultimate goal of this site is building an easy to consult long term database of high quality searchable content, that above all else should help future visitors find valuable answers for their issues, rather that help the single individual that posted it.
With that in mind, I think the amount of investment one should put into a single post, should be proportional to the original quality of the post itself.
If it is well written, illustrated and shows a minimum of effort, the odds that asking for further details will be well met are higher. Otherwise users very often abandon their posts even when they get actual answers, let alone when met with downvotes, close votes or even simple requests for clarification.
My second favorite and most reliable metric for when and if to help a user (leave a response, ask for clarification, engage a comments, etc.) is how responsive a user has been to received input. If a user responds to comments, shows interaction or ideally even edits his post in response to input, it shows he is invested in getting help, that should in return encourage us as visitors to invest more in that post.
Has Gorgious very well points out in his answer all interactions collectively take considerable amounts of time and effort from users, especially if one considers the large volume of posts that come into our site daily. Hand holding every single one of them is impossible at this scale, and our format is simply not designed for that type of back and forth.
The harsh truth for me is that all the knowledge and effort from the many brilliant and dedicated members of our community is a very precious and scarce commodity, especially when considering it is altruistically given away for free for the benefit of any visitor.
The final decision of how to use ones time and energy is always to each users discretion, but I'd consider all that manpower squandered if spent solely coaxing information from low quality posts, rather than invested in writing actual useful answers elsewhere that could eventually help countless other visitors down the line.