Hi there,
I’m not certain, if it’s applicable to your use-case, but we, a RoboCup Humanoid League team (Hamburg Bit-Bots) recently went through the migration process or rather are in the end-phase of it. We run ~45 nodes with a good mix of C++ and Python some of which with relative high-frequency communication (~500Hz). We already published a blog post about our “Experiences with ROS 2 on our robots". You can read the thread here and the blog post here.
As for your ROS1as2 approach:
During our migration process, we repeatedly discovered various communication and performance problems, where ROS2 worked not as expected/designed. A lot of issues have already been addressed, but writing a “fake” ROS2 interface seams dangerous. Your migration using the facade might work well, but flipping the switch to using real ROS2 almost certainly introduces numerous unforeseen problems, which you would already have resolved one by one using the other approach.