Question about FollowMe behaviour

Hello all,
I have a question about freepbx Follow Me behaviour.

Let’s look at a simple Scenario: 3 extensions (20, 21 and 22) and some external cell phones.

What I want to do is the following:
inbound calls should go to main ext (20) and ring it for 10 seconds. If no answer, ext 21 and 22 should start ringing for another 10 seconds (while ext 20 keeps ringing). Finally, call should ring some cell phones, keeepin ringing all the previous extensions as well.

I tried to accomplish this behaviuor setting Follow Me for extension 20 (to 21 and 22) and for extensions 21 and 22 (to cell phones), but I noticed that Follow Me is not run when the extension is called from another Follow Me (or from a Ring Group as well). Follow me seems to be invoked only when his extension is called directly from another extension or from an inbound route. Is this correct?

So the workaround was setting up 3 Ring Groups:
500 - ext 20 with 10 seconds timeout and group 501 if no answer
501 - ext 20, 21, 22 with 10 seconds timeout ang group 502 if no answer
502 - ext 20, 21, 22, cell1, cell2

This do works, but of course it makes some missed calls on extensions 20, 21 and 22 when call goes down to the next Ring Group.

Is there a better way to make this working?

Thank you for your support!