I'm reasonably sure segwit will end up needing a hard fork. How do you deal with nodes that fail to update? There will be differences in the data between full nodes. There is too much risk at the moment with the soft fork without more testing.
It won't. Nodes that do not update will not be able to validate the data, that's about it IIRC.