With WebSockets, you also have just one lookup when opening the connection. No scalability issue here.
Also, this is a security consideration because a malicious user could intentionally send fake sessionIds to make us DoS our database. With JWT, verification of the signature only uses CPU on the workers which are easier to scale.
You can steal a JWT token the same way you can steal a session token.