When the provider delivers the SYNCED event while the server is still
in donor state, on_sync() attempted a direct donor -> synced transition,
which is not allowed and aborts in a debug build. This happens when
SYNCED arrives before sst_sent() had a chance to return the server from
donor to joined.
Anticipate JOINED in on_sync() via return_from_donor_state() so the
transition goes donor -> joined -> synced, mirroring what the initial
sync branch already does.
Add a wsrep-lib unit test covering on_sync() in donor state.