As far as i know idle_speed is set in the mixer file. See https://dev.px4.io/en/concept/mixing.html -> Multirotor Mixer -> deadband
For example the quad_x mixer file:
And _idle_speed is calculated in "mixer_multirotor.cpp". When the deadband is set 0 in the mixer file _idle_speed is -1.0f:
You're right, until line 364 in mixer_multirotor.cpp the output values are limited from 0 to 1. But in line 364 they get limited between _idle_speed (most of the time -1) and 1.