After several iterations I arrived at below, simple architecture. The core is our flask-server (server-websocket/main.py). This both serves the website, and has endpoints for the websocket connection to this website. The robot-modules (currently controllers for actuators like stepper- and servo-motors, as well as two toggles for LEDs) are located in the ./robot folder. Each of these is a separate multiprocess and communicates with the server using multiprocess.queue.
The schematic of the used hardware is below. It consists of a RaspberryPi 3 B+, an A988 stepper driver carrier (https://www.pololu.com/product/1182), a Nema14 stepper motor, a 9G mini servo motor, a slightly bigger no-name servo (Sportline Sport Best.Nr.313-0001), and two LEDs.