The moves of bringing my implementation closer to the original is working wonders. It’s a little annoying that things don’t work how I expect them but at least they work.

Changex like this:

func _exit_tree():
	if multiplayer and multiplayer.multiplayer_peer != null:
		if not multiplayer.is_server():
			if multiplayer.has_multiplayer_peer():
				#multiplayer.multiplayer_peer.close()
				#multiplayer.multiplayer_peer = null

				# https://www.reddit.com/r/godot/comments/kpnkrp/server_crash_on_client_disconnect_help/
				multiplayer.set_multiplayer_peer.call_deferred(null)
			await get_tree().create_timer(1).timeout
			multiplayer.peer_connected.disconnect(add_player)
			multiplayer.peer_disconnected.disconnect(del_player)

	get_tree().reload_current_scene()

into this:

func _exit_tree():
	if not multiplayer.is_server():
		return
	multiplayer.peer_connected.disconnect(add_player)
	multiplayer.peer_disconnected.disconnect(del_player)

Keep it simple, silly. So it turns out that something in the 2D side was blodcking the view and everything is quite snappy. It’s a good thing that I didn’t delete anything.