Danny Hamilton's idea is sort of like the atomic swap protocol but it works.
There are two problems though:
1. Everyone absolutely has to use a service to get their coins on a forked chain. Althuogh theoretically it doesn't look like it but conceptually this is a change in the protocol, because without this someone's old bitcoins don't work.
2. What if I double spend? I.e, I try to do the same on both chains simultaneously? Waiting for confirmation on other chain won't work, since it could lead to a deadlock & would require a semaphore to resolve which means requiring coordination between the chains.