Responding to your points in turn..
Trying to work out the maximum isn't over specifying and the target of 22 controllers is lower than max.
I'm not sure what you're thinking of, game port isn't tied to video refresh rate.
40us is well under the sampling rate the 150/250us rates used by the sidewinder that I've been basing my calculations on.
Why the joystick port, using the port as intended, more elegant , it's capable for the task, other ports would be occupied, parallel port would be busy with a printer and covox speech thing, com ports, mouse and modem. Thrust master is the only one I know of who tried a non game port solution with a keyboard/game port combo, a kludge. Everyone eventually hit on doing digital transfers off the game port which works.
9600bps.. 22 controllers, 15 bits for state, 5 bits for id, at 50/100/200hz is 22000/44000/88000bps, which isn't even the maximum.
Now, back to the sidewinder gamepad, found more info about it, original has a game port connector built into the controller for daisy chaining four controllers, this means the id bits they append to the state data is only two bits or they're only using two bits. If it's just them stopping at id'ing four in their software, then you could keep chaining using your own code to parse. If they only designed for four controllers in hardware, there is a solution that would allow to use more than four sidewinder gamepads as is, create the ids in the breakout box. If one made use of the chaining, would only need six ports, id each port and layer and parse that data on top of what comes from the gamepads. I'd make use of the unused fourth bit for that purpose, or simpler, use the five unused bits, would statically set values, no need to make a stream.
Oh yeah, without doing anything, you could use 24 sidewinder gamepads by having six game ports, done with a sound card + a multi-io card /w a game port + dual port game card. Oops, make that two dual port game cards.