You will always have to take an outage to swap over, unless you used database mirroring. This will enable you to supply both databases in your connection strings so in the event of a failover everything is seamless including the fail-back.
The process above should work, however I would be inclined to alter it to the following:
1. Primary stores tlogs in a share on the secondary server that as part of "normal" log shipping, it used to collate the latest updates and restores them into its DB.
2. When Primary goes down, I must go to the secondary and do the following:
restore database {db name}
with recovery
3. Now do a restore on the "downed" primary from the last backup of secondary, and setup log shipping from the secondary server (which is now live) to the primary. Once you have confirmed that the primary is OK, restart primary as per step #2.
It does mean shipping the whole DB backup over the line, and having users work against the remote DB but this is during DR invocation, so speed will be the last thing on users minds.