From the looks of it, all of those guides you linked to were posted long enough ago that they were using WSL1, since WSL2 just came out last summer'ish. If they had been using WSL2 before it launched, they would probably have mentioned that it required Windows Insider/Preview.
The big difference between WSL1 and WSL2 in this regard is that WSL1 ran in a pseudo-bridge mode network with the Windhows host, but WSL2 runs in a Hyper-V VM with its own virtual, NAT'd NIC. From the Windows computer itself, WSL2 seems to do some local port mapping magic to allow you to reach WSL2 services on localhost. But the external IP does not behave that way, so other computers on the network (and even other networks, such as Docker, on the same same machine), cannot directly access the WSL2 interface and ports.
I've provided some answers to this for other services in other questions (such as this), and I highly encourage you to read it for some insight.
But for SSH, I personally take a different approach. I simply run the Windows OpenSSH server on the Windows host itself (on port 22), and then also run an SSH server (as you have set up) in each of my WSL instances (both WSL1 and WSL2). I can then use the SSH ProxyCommand option to utilize the Windows host as a jump host into the WSL instances (I have multiple instances at most times for different scenario development and testing).
It's really even easier than that in most cases. Most of the time, I just SSH "into" my WSL instances with something like:
ssh -t windowsip wsl
or
ssh -t windowsip wsl -d Ubuntu20.04
The first one just launches me into the default WSL instance. The second allows me to select a specific instance/distrobution.
I really only use the ProxyCommand version with Ansible or other applications which require "real" SSH on the endpoint.
Also note that you can use this trick to even launch the SSH server in each instance, avoiding the hassle of setting up the "launch via task manager at boot". Just run something like:
ssh -o "RemoteCommand=wsl -d Ubuntu-20.04 sudo service ssh status ^|^| sudo service ssh start" windowshost_ip_or_name
(the ^|^|
is escaping the || for CMD).