How to deep sleep with STM32F103C8T6 (Blue Pill)

You are right. Some MCU’s consume less power than others. Such targets usually utilize the tickless feature of the Mbed RTOS and are equipped with low power tickers/timers. When the system has nothing to do, based on the system status (taking into account scheduled tasks to be executed in the future) the RTOS calculates how mutch time it can spend in deep sleep state to save power and falls into deep sleep. Once the calculated time has elapsed, the system wakes up and performs the task scheduled as next. But there is a price for such feature. The program becomes less responsive. For example as in this case. You can try to enable the tickless feature for the STM32F103 for example by using the following mbed_app.json:

{
    "target_overrides": {
        "*": {
            "target.macros_add": ["MBED_TICKLESS"]
        }
    }
}

But, I’m not sure whether it will help (I have never tried that for the Blue Pill).