Secret questions don’t help with security but tend to make it worse. Not only can they be phished conveniently along with the password, they also make for a poor UX. Also, SMS is no longer considered a secure channel. Use a more secure second factor instead, such as WebAuthn.
Blocking an account after a number of failed login attempts is an invitation for DoS. Use a system of temporary blocks instead; for example, 2^n seconds after the n-th attempt.