for this case, I suggest wait-set based subscription, see this topic Latency induced by timer chains, how to avoid them? - #7 by ZhenshengLee
wait-set based subscription this strategy has been adopted by autoware team from 202405, https://autowarefoundation.github.io/autoware-documentation/main/contributing/coding-guidelines/ros-nodes/topic-message-handling/
more example of waitset subscription can be checked in https://github.com/takam5f2/ros2_subscription_examples