So if I run a host, I can cheat by poking at the memory of the process.
Here's the thing: The train of thought you go down, is a train of thought that many, many, network programmers have gone down for the last 30 years.
It may feel as if it's new and promising to you, because there is no large scale success to look at.
Unfortunately, the reason for that is not that it's a green field ripe for the taking; the reason is that the practicalities all slope heavily towards a hosted-games star-topology approach.
Also, your "one day" followed by "one week" estimate shows that you have very little actual experience with distributed systems development.
The good news is that, the best way of getting such experience, is to combine talking to those who have it, with trying your own things, and analyzing how they actually work once you have them up and running, so you're on the right path!
Yes, that is correct. The same problem occurs in a star-topology as well. The architecture itself is really just a small modification of a star topology; the only difference is that the role of broadcasting is shared by a group of people (called secondary hosts). So all the problems that come with a star-topology apply to this as well.
I am aware of that. But based off of what I've profiled in my own game, it seems that this architecture might work better for the game I'm developing. You never know until you try right?
As a small progress update, I've nearly completed coding the entire host program (based off of one day's of work). I just need to code the client and then do some testing. I may be new to creating multiplayer games, but it doesn't mean I'm a complete amateur when it comes to networking :P