Mining cannot be done offline since every ten minutes you start searching for a different nonce. Is that correct?
You need to supply the miner with a blockheader. Building the blockheader requires, at a minimum, knowing what the hash of the most recently solved block was. If you have a way to transmit this hash to the "offline" machine, then I suppose that the miner could do the searching for the nonce offline. If the miner successfully finds a nonce that causes the block header to hash to a value that less than the target, then you'd need a way to transmit this nonce back to a machine that could broadcast the block to the network.
Note that the time to find a nonce is random. It won't always be 10 minutes. You can end up with two consecutive blocks found within seconds of each other. You can also have a couple hours between blocks. The difficulty is adjusted to try to keep the average time between blocks close to 10 minutes over a period of 2016 blocks.
And if you find a nonce seconds after someone else you will most likely not get the reward because the majority of miners will start searching for the nonce following the block of the person that got there just before you.
Correct. The longer the elapsed time, the more widespread the other block will have been relayed.
Seems like there is a high frequency trading strategy here. If you find a nonce, you are better off if you can propagate it faster than everyone else.
Correct. For this reason, mining pools will generally try to remain connected to a very large number of peers.