Ok I found (atleast part of) the issue.
With my current setup it does run it in the OpenOCD window, but instead of those values it gives me (both when I manually run ‘mon reset init’ and in the OpenOCD on startup):
adapter speed: 1800 kHz
stm32f4x.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x1fff4252 msp: 0x20002e58
The program counter doesn’t point to FLASH but to System memory (0x1FFF 000 ~ 0x1FFF 7A0F). This is because we use the bootloader function provided by STM (by pulling the boot pins to curtain voltages). It appears that when the bootloader exits and jumps to the application code, it doesn’t reset the stack pointer.
If I remove the jumpers so the micro boots normally I get the following (correct) output
adapter speed: 1800 kHz
stm32f4x.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08003dc8 msp: 0x20020000
So my problem is a weird interaction between debugging and the bootloader.