- 30 days before the fork there will be a code freeze + tag + release, If there are no major changes there will at least be an increase in the protocol version. A similar fork system to Bitcoin will apply, whereby a rollover to the new code after the trigger block will only occur if a sufficient number of miners are running the new code.
- I am not aware of a wallet or daemon notification system that would provide advance notice. Of course if an old client fails to upgrade and is forked from the network, new blocks will no longer be consistent with those found on Monero block explorers or other clients that have upgraded. Currently it is up to Monero users themselves to upgrade in time. Community members and developers have assumed the responsibility of contacting exchanges and mining pools in the past to remind them of forks but cannot guarantee compliance. In the past there have been a few known service providers that were late in updating (ie. Shapeshift) but updated shortly afterwards. It is suspected there may have been one or more botnets that were taking off line after enforcement of the LMDB fork.
- Everyone received 1 hard fork's grace period before you have to update or are kicked off the network (or left on an old fork). Just like your OS security software users are expected to remain up to date. There is no goal to support old upgraded clients for longer than the grace period described.
In terms of what is a hard fork (following the above procedure) vs what is a soft fork:
Anything that is more of a soft fork will kick in immediately (as long as it doesn't drop pre-fork clients off the network). Anything on the p2p layer (ie. hard forkable) will be kept in the wings until the next fork date (as roughly estimated from block height) and then is enabled.