I've got a Windows 10 PC hardwired into my router with a reserved local IP and port forwarding for port 25565 to that IP as well as UDP ports 25565 and 19132 - 19133. I've set up dynamic DNS since I don't have a static IP, but my IP hasn't changed since I setup the server. My kids are able to connect via the host name from our home wifi and we had another player able to play from his house for a while. We tried to bring in more friends, but none of them can connect. All are getting a timeout error. If I plug the address in mcsrvstat.us it says it's reachable and can accurately tell me how many players are logged in. I've also had them test they can make outbound calls on port 25565 using portquiz.net and it's fine. I'm not sure what else I should be looking for to debug the connection problem.
If an external testing service such as mcsrvstat.us can reach your server, and it worked in the past, the next most likely explanation is temporary or ongoing connection issues between your home ISP and your friend's home ISP. Unfortunately, front-line support isn't really prepared to solve this kind of thing.
You can try having both sides call in a complaint to their respective ISP with details (connecting from IP, connecting to IP, dates that it worked and failed) and hope it gets forwarded to the people who can fix these issues (usually a NOC, "Network Operations Center").