Just make a new playertype./obvious
Tons of playertypes to fit what you want.
No, each player would get their own datablock, and you can change the speeds / jumpForce of their datablocks individually. They'd be re-used if someone left and a new person joined. It worked fine; no bugs.
It's a good idea, but besides constant datablock creation, it's not doable without engine changes.
SetPlayerVelocity doesn't work?