What do you think about using git for managing updates in the Moodle module?
This way we are very flexible and could just say I want to update to version 3.x, put it to a db prop, signal-event and ready. (maybe one day choose it in a cockpit dropdown) I have to test downgrades but it may work too.
But we could have more problems as updates are not controlled anymore.
Another point is: I tend to use postgresql instead of mysql for moodle.
From the moodle docs:
If you run your Moodle site with MySQL database backend and use the default MyISAM as the storage engine for your tables, you may want to convert them to use some more reliable engine like InnoDB (actually, you should want to switch to PostgreSQL anyway).