Pretty sure you can't do this without using a world editing program. Just have your wife join, teleport her, and have her sleep in a bed.
You can teleport like this:
/tp [wife's username] [your username]
What I would do:
Don't set their spawn in the sky, instead make a deathCount
objective, and at the beginning of the 'event', set it to 0 for all players. When a player dies, teleport them back to the beginning, then set their deathCount
to 0.
If you are doing a single player map, you could, instead of using beds for spawns, have a button that summons an invisible invincible armor stand, and then use that for the 'resetting' part.
If you are doing this with multiple people on a server, you could also at the beginning of the event, kill all players, then summon an armor stand at each player with a custom name, then use those to set the spawns back.
How to use /scoreboard
First, make the objective:
/scoreboard objectives add abc deathCount
Then, make a clock going to two command blocks.
In the first block, put
/tp @a[score_abc_min=1] <x> <y> <z> (coords of intended spawn)
The second block should have
/scoreboard players set @a abc 0
abc can be replaced with whatever you want
New answser:
Use a command block close to the middle of the room, (could be on roof or in floor) on a relatively quick timer. Use
/tp @a[rm=?] <x> <y> <z>
to teleport everyone at least ?
blocks from the command block to x y z.
Best Answer
Add a new objective that tracks when the game has been quit:
/scoreboard objectives add GameQuit stat.leaveGame
On a redstone block clock, have these two commands in this order:
tp @a[score_GameQuit_min=1] X Y Z XROT YROT
scoreboard players set @a[score_GameQuit_min=1] GameQuit 0
Replace X Y Z with the coordinates you want the player to log in on, and XROT YROT with the rotation you want them to log in on.