Hey there, I'm sorry I don't have much time now but have read through your posts and can offer (((hugs))), fresh eyes and a few initial thoughts
Have you considered fixing the time of the first nap? So, say, get him up at 6.30am even if he woke earlier or you have to wake him, then perhaps try to make the first A time as low-key as you can, aiming for asleep at 9.30. We had some success (still do) going out even for a small errand just before, be home around 10mins before the desired sleep time, or whatever you think would work. Hopefully his body clock may start to realise what to do... If that seems too long, try nap at 9.25, or even 9.20 - mine would be quite sensitive to 5min changes!
Try considering that down time in the cot when he's awake but relatively calm, as worth half A time - so if he plays around in his cot for 30mins, trying but failing to get back to sleep, then consider it as 15mins A time - so if for example you want to aim for 3h for the next A time, then he'll need to be up another 2h45 from when you get him up, or 3h15 from when he actually woke, iyswim? If you feel he would do 3h after a good nap but want to shorten it after a bad nap, perhaps you'd aim for an effective A time of 2h45 instead, which, with the 30mins down time in cot, would mean an extra 2h30 after getting up, or 3h after he actually woke. Does that make sense?
Have to dash, wanted to insert sticky on wi/wo for you, remind me if I forget!