Make the Block function logically correct
The problem: Blocking someone does two things:
1. Makes them unable to interact with you in a poor manner (their messages won't show to you)
2. Makes it so they CAN'T follow you and will be forced to unfollow (which doesn't make sense and you'll see why)
Now, how to fix it so it isn't garbage:
1. Make it so permanent ban forces the person to unfollow instead and prevents them from joining hosts or raids that goes to whoever banned them.
2. Instead of hiding chat messages from a blocked person, take the Discord approach (add a "this message was blocked, click here to view anyways"). Similarly will happen to the Whispers (except in this case the person you block won't trigger the Whisper tab to appear nor the unread Whisper counter to show).
2.1 Conditionally, add a "Mute" function. How it will work? Simple: on the chat the user should be able to "/mute" or click a button on the person's miniprofile to cause all their messages to be hidden for you on a channel. But unlike blocking, this wears off as soon as the user leaves the channel.
3. Blocking someone should prevent ALL interactions from leading to the blocked person's channel: Recommendations, Followed Channels, Hosted Channels and Front Page should not list the blocked person, if someone Hosts a person you blocked then Twitch prevents the stream from being played, if someone sets a Raid to who you blocked it should automatically make you leave the Raid.
Now, remember I said "Makes it so they CAN'T follow you and will be forced to unfollow" as one of the current problems of blocking? Here's a story of why that's bad: One time a streamer I follow has temporarily blocked me in another channel because they were upset by all the talk there, that caused me to unfollow him without either of us knowing and not letting me follow him again. When I commented that in his chat, both of us were confused until he remembered the block and thought that was the cause, and when he unblocked it confirmed that for both of us.