Trzy główne obserwacje:
clients.append(conn)
To robisz przypadkiem dwukrotnie - raz z wątku accept(), raz z wątku połączenia.
message_thread = threading.Thread(target=lambda: broadcast_queue.append("This is a broadcast message."))
Nie rozumiem po co robisz to w wątku, ale - tak na oko, próbujesz zrobić broadcasta zanim jakikolwiek klient się połączył, więc nowi klienci nic nie dostaną.
print(f"{msg}", end="")
Wyrzuć ten end="" :)
A na boku:
SERVER = socket.gethostbyname(socket.gethostname())
Potrzebujesz takie kombinacje, czy nie wystarczy Ci obecnie zwykły ręcznie wpisany lookback 127.0.0.1?
{threading.active_count() - 2}
len(clients)? :D
I czemu wysyłasz długość wiadomości jako tekst (jeszcze w 64 bajtach), jak by się mogła spokojnie zmieścić w 8 bajtach (plus binarnie)?