Camera position is defined in the datablock. You'll have to make two different datablocks and change them 6 seconds after spawn.
No, just use %camera.setTransform(%transform).
Here's an example from the Rampage gamemode:
// get the position
%pos = "-44.5949 -89.0925 21.4696 0.25952 -0.10295 0.960235 0.783533";
// set their camera to the position
%client.camera.setTransform( %pos );
// remote control our player from the camera
%client.setControlObject( %client.camera );
%client.camera.setControlObject( %client.player );
// right now we don't want the user to see his player, so let's set their transform somewhere far off
// we do this to keep the camera frozen, probably a better way to do this
%client.player.setTransform( "0 0 -20" );
%client.player.setScale( "1 1 1" );
There are actually better ways to do the last part, but that works well enough and it's what they used in the Rampage mode.