Other users have offered great advice, and I would recommend you re-read the comments of Buffy, Noah, and Elizabeth. I will provide you with my input as someone who spent the past year as (nervous) applicant and then (elated) offer-holder. I address the different parts of your question under each bolded italicized section below. Note this was somewhat stream-of-consciousness, so feel free to edit responses/structure.
The TLDR before essay:
From everything I have gathered across StackExchange, Friends, Colleagues, and Others, the application process is a holistic assessment of your being as both a student AND a person (more on this in conclusion). If you take the time to read application requirements, assess current students in your programs of interest, and connect with professors, you can accurately guesstimate your success in each application.
How can an undergraduate student self-assess his/her PhD application prior to actually applying for PhD programs?
There are a couple of tangible ways for an undergraduate to compare themselves. Firstly, look at the CVs of current PhD students in your programs of interest. Current PhD students will often have a website or LinkedIn. Because these often have time components (e.g. Research Assistant from X to Y), you can determine what a successful PhD student was doing when they were in undergrad. While a CV builds over time and is no way a comprehensive measure of a student's accomplishments, you can quickly do a side-by-side comparison with your CV and ask yourself, "have I done X, Y, or Z as it appears on this PhD student's CV?" Additionally, reach out to peers for their application essays. At the time they wrote those essays, they were in undergrad! Thus you can directly compare your own application statements/proposals/why-i-should-be-let-in-arguments.
As prospective PhD students, we can generally compare ourselves to other students at our own school using our grades.
This is absolutely correct and you should heed Elizabeth Henning's input that GPA/GRE/merit-based indices are important. Why? Because grades are a general indicator of a student's ability to learn and apply new material. Thus, while decent to high grades are a bit of a wash, low grades may be indicative of a problem to learn and apply new material. NB: GPA is not everything. In my own example, my GPA was much higher than the requirements for nearly all my application programs, although my GRE was actually a bit low. In this way, I was able to guesstimate that I would satiate the minimum requirements (as it is a balancing act). I was also able to guesstimate that I was not a top tier/first round pick in this area of my application, as there were certainly students who had perfect GPA and perfect GRE.
We may also apply to internships or awards and, by acceptance rates of such programs, we may begin to understand how "good" we are as a possible Phd student candidate.
Correct, this is another general 'area' of your application package. To what extent are you carrying out or accomplishing the hallmarks of academia? That is participating in research (either publishing or gaining research assistant ships of high notoriety) and earning money/awards. As PhD students and academics must continue these feats, the extent to which you do them compared to your peers in another direct way to guesstimate if you are a stronger or weaker applicant. NB: an applicant with several publications and awards is much more 'attractive' than an applicant with none. NB2: they are not necessarily 'required' or 'dealbreakers'.
In addition, we might try discussing our potential application with a professor, but even though we might be really good, the professor might be too busy or otherwise not give great feedback.
This is a two part sub-section (and then I promise to wrap it up).
1) In regards to 'discussing our potential application with a professor', I thoroughly believe professors are assessing an applicant as a person and 3-5 year collaborator. This does not mean they are just trying to figure out how smart you are, they seeing how they feel around you. Can you hold a conversation? Can you act politely at the right times? Are you open to new ideas? How much will you push back if I prod at your idea? In several official and unofficial skype/in-person interviews I could often sense that this was the whole point of talking live - they want to know if they spend large quantities of time with you.
2) In regards to 'the professor might be too busy or otherwise not give great feedback', this is because they have very difficult and demanding jobs. In my experience (so YMMV), only one professor I was interested in working with gave 'above and beyond feedback' (i.e. helped with the minute details of my application). After reaching out to a given professor, the average response was either 'Your application looks good! Looking forward to seeing it in the formal application process' or 'Thanks for reaching out and introducing yourself! Do you have time for a quick skype call?'. Do not be discouraged if a professor does not give in-depth feedback, they are just very busy. This is what GOOD friends and colleagues are for. Be sure to compensate them accordingly (thank you notes, snacks, etc).
Other stack exchange questions that you may be interested in reading/relevant to your question:
How does the admissions process work for Ph.D. programs in the US, particularly for weak or borderline students?
How important are the grades compared to the cover letter when applying for a Ph.D?
PhD Admissions Importance: Research vs. Grades
Is getting a good grade enough to ask for a letter of recommendation for a grad school application?
Emailing professor: Is my profile good enough for this position?