Блин, а вот мне стало интересно
Матрикс в теории позволяет прозрачно мигрировать между имплементациями сервера

Заводим второй сервер рядом, кладём ему публичные ключи старого, по протоколу все синхронизируем, дропаем старый

Правда непонятно, что с сессиями юзеров делать :D