Ok, great, sounds like you're getting there.
When FSHost stops the game servers, you shouldn't see any instances of dpnsrv still running. I usually see it go away immediately, but I could understand if it took a bit of time -- that process is part of DirectPlay, and FSHost doesn't interact with it directly, so it's not actually FSHost that's telling it when to start and stop. But the act of stopping the game servers should usually be enough for DirectPlay to terminate dpnsrv automatically. If you have two instances running for a long period of time, I'd assume something was wrong.
You want all instances of dpnsrv to be stopped before you run FSPortTest. That's because FSPortTest itself listens on each of the ports when it checks it, and if something else is already listening on that port (like dpnsrv listening on 6073, or FSHost listening on port 80), it'll usually fail the test. That's why everything related to FS multiplayer should be stopped before you run FSPortTest, so it has exclusive access to all the ports.
Russell