STM32G431RB ( 64 Pin ) Custom Board

Well, it’s a good time to be designing G431 based boards. LCSC has them very cheap: https://www.lcsc.com/search?q=STM32G431C
If you like the QFN48 format of the STM32G431CBU6 you can get them for less than $1.50

This depends on your design. My personal pain-point is currently around 0603 size. But for most components you can choose the size, and can choose not to make everything 0402 and smaller. Using a bit bigger components greatly increases solderability.

Of course once you have a design you’re happy with and want to produce many, the turnkey assembly makes a lot of sense. But @robca already mentioned the difficulty of designing the analog part - if you can self-assemble a few prototypes a single cheap ($5?) JLC order for PCBs will let you try out dozens of variations of your analog design using different component values/brands/types…

If I may put in a preference for connectors:

Stemma/QT (JST-SH1.0 4 pin) for I2C
6-pin JST-SH1.0 for SPI (like here: Magnetic_Encoders/Encoder_SPI/pics/SPI_pinout.png at master · runger1101001/Magnetic_Encoders · GitHub)
4-pin JST-SH1.0 for UART
ARM-14 header for SWD + Serial

Consider if you need the UART connection. I would instead put it on the SWD (where it is then automatically connected to. the PC via the ST-Link). Or if you want to use 2 extra pins on the MCU consider USB, which can also transport serial streams and is more versatile (e.g. also able to provide power, has shielded connection, additional USB profiles and more).

Use a “solder jumper”. I like to use them “normally closed” so the user only has to cut the trace if he doesn’t want the option (in this case the pull-ups). It’s a zero cost solution and most PCBs have extra space on the back to put the solder jumpers.

I personally would not do it this way. If you want this, then why not use the SimpleFOC shield on the Nucleo64 G431 board? All the pins will already be broken out, plus the Nucleo has a built-in ST-Link.
This approach suggests the board can be used for other things, but in fact it will be 100% busy with motor control.

My opinion is the driver board should focus on the motor control. The interfaces it offers should be used as command inputs for the motor driver, or as interfaces to the required sensor, or as outputs for telemetry. What functions it has, it should offer on-board, and it should not try to also be a general purpose MCU board at the same time. The driver board then anyway interfaces with a controlling MCU or PC, and this other system can worry about the other stuff.