The best solution seems to be using a #Technic hub that runs #pybricks and connecting to it from a #raspberrypi over bluetooth.
I know this works, because I have done it before, but it does complicate things a lot for my not-so-technical users that want to follow along. It means maintaining code for both the Pi and the Hub and creating a protocol so they can communicate. Not impossible, but it seriously increases the learning curve.