Hello,
1. Allow users to search for players by username or email address within the statistics page. To protect user privacy, players should be allowed to block discoverability within their account settings.
You can already do this. In fact, if you go to https://qcsalon.net/en/stats you have an edit field called View game statistics of that person : There, you can enter a username, though not emails. Perhaps though you meant something like enter a partial username rather than an exact match, so for example if you entered Niko, you'd get search results like Nikola, and other similar names. If so, the edit field supports auto completion. In my example, if I enter Niko, and wait a few seconds so the website processes it, the search will automatically be completed with la. If that isn't the username I want, I can use the up or down arrow keys to select a different match.
2. Allow players to send friend requests to other players via their statistics profile.
While you can't send requests via statistics, if you go to your settings by clicking the link at the top, in your example that would be settings Isaac5457, you have a friends list option on that page. That is the general interface for managing your friends, you can accept, refuse as well as send requests by entering a username. Direct link is https://qcsalon.net/en/friendslist
3. Implement a push notification system outside the playroom, which will act as follows:
A: Notify users of new chat messages
B: Notify a user of a new game invite
C: Notify users of new friend requests.
D: Notify a user when a specific friend(s) are online and ready to play.
This probably needs just one clarification, are you using the web client or the Windows client? On the Windows client, while it isn't exactly system push notifications, you can configure any message you want to both play a sound as well as speak even when you aren't on the Playroom window. That is done from options/reading and appearance. On the web client, unfortunately screen readers don't speak when the window doesn't have focus (a technical limitation), though you should be able to at least get sounds when you aren't in the window (this only won't work on iOS another technical limitation). I agree with one of your suggestions here though, there should be a way for you to be notified only about specific people in your friends list and not the entire list, something like a list of favorites on other social networks.
Of course, you can also review anything you missed while you weren't in the window, the views system will help with this. Alt / left or right arrows will change a view, and page up / down will read messages coming only from that view, so you can focus on private messages or game invitations for example to see what you missed.
If you are a sighted user though, sorry, this part is a little blind specific and there isn't an easy way to review specific kinds of messages for sighted people as far as I am aware, other than making certain kinds of messages bold / italic / changing their fonts and colors in the history.
Finally, by outside of the Playroom perhaps you meant being entirely offline and not only outside the window? If so, you'd probably need to be connected to the server to receive such notifications, and if you are connected to the server, it doesn't make much sense to display you as offline. That last part is only my opinion as a user though.
I hope that helps.