Your proposal is to effectively use an SMS OTP code - but make it much longer than usual.
Your longer OTP code would be more resistant to brute force guessing, but there are better ways to counteract the problem of brute force attacks, for example:
- Make the OTP code expire after a few minutes (and send the user a new one)
- Invalidate the OTP code if the user types in the wrong code too many times (e.g. 3 times)
- If the user account sees too many OTP input attempts, lock it out for a while
SMS OTP is now looked down upon because SMS has many security weaknesses. The SMS message could be intercepted by someone else (using a SIM swap attack, or some sort of interception while the message is in transit), and if that happens, the longer URL-based OTP code won't offer any additional security.
Usability is the final issue - some people won't want to open the link on their phone (e.g. if they are logging in on a computer). Their phone might not even have a working web browser, or connection to the internet. A short code that they can type in to any device is more convenient.