At this point, I think making a table of the required states would help a lot. Something like
VUSB Jumper 1.5k BOOT0 Comment
Low Yes No No
Low No No No
High Yes Yes Yes
High No Yes No Default
High No No No When triggered by MCU software and D+ and D- driven low
If we assume the above is right (it probably is not), then the conclusion is that you do need some kind of external logic to handle the 1.5k pull-up on D+. It will be affected by whether USB 5V is present (because when there is no voltage there, the D+ must not be pulled up either), whether the bootloader jumper is selected or not, and even be able to be disabled via GPIO, noting that in standby mode GPIOs will revert to hi-Z. So, not just 3-input 1-output logic, but something with internal state. (An additional input, or a RESET, might also be useful.)
Are you sure you need to go down to STM32 Standby? In Stop mode, STM32F301C8 retains SRAM and register contents, and VDD current consumption is down to 6 µA, compared to the 1 µA or so of the Standby mode (VDDA current is roughly the same, around 1 to 3 µA, depending).