BTW I looked into this some last night. To clarify, removing the namespace stuff from the basename would work, except that set_active() prepends acp_ to the basename name https://github.com/phpbb/phpbb3/blob/develop/phpBB/includes/functions_module.php#L404
If you change the basename to, e.g. acp_prefixed_module it almost works except that it shows an error about being unable to find the module in ./includes/acp/acp_prefixed_module.php rather than looking in the extension directory.
So what we need to do is replace \ with - on storage and undo the replacement after retrieval and use call_user_func to instantiate the namespaced object. Or something. My God, this system is crap.