I was really determined to foster good habits from the start this time
Completely understandable (and wise). The focus doesn't want to be the cot though, the focus needs to be on independence. It sounds like you want to foster independent sleep and the most effective way of doing that is to make independant sleep as easy as possible for baby.
The dummy may well be your saviour. Keep working on it, in fact focus very heavily on getting it accepted. Once you have dummy accepted as the trigger for sleep, then it becomes easier to get baby to sleep wherever is convenient for you.
Often in the first 6 (ish) months though, dummy alone isn't enough comfort for independent sleep. You need another layer of sleep habit. In the cot that might be patting and shushing. In the daytime when baby has to be in the same room as you, most people use movement.
So with your bouncer (or pram) it's not movement alone. Just as dummy alone probably won't cut it at this age. It's both sucking and movement. And being relentless about it.
The important thing you are achieving is baby going to sleep separately to you (so not in your arms/sling). That skill is the important one. It being in a stationary cot is doable - but because you have no movement to layer ontop of sucking as an independant sleep habit, it requires a lot more hands-on (literally) help from you. So it's more doable with first baby than with subsequent ones.
By all means have a consistant cot nap of the day if you like. The first nap of the day is usually easiest so I'd do that one. There is no benefit in this though, it's not teaching any more independence than not going to sleep in your arms another way.
Tbh I think the problem isn't method, it's timing - I'm sure you're right that I'm letting him get overtired. He had slept on and off all morning in the sling (we'd been out all morning) so I had no idea when to expect him to be tired, and I'm sure I missed it.
A way to estimate when the next nap is needed is that your awake window (from waking up from one nap until being asleep for the next one) wants to be double nap length. This awake window includes settling time, so if it takes 15 mins to get baby to sleep then start getting him to sleep 15 minutes earlier.
A more natural way to guage sleep time is crying and clinginess. It would be reasonable that, after being fed and winded (upon waking) that baby will spend all of their awake time on the floor practicing gross motor skills. The very first time baby cries while on the floor, pick up and see if there is anything obvious wrong (a burp coming for example). Use this opportunity to change baby's nappy and put straight back down for continued floor time. At this point baby is (a) fed (b) winded (c) has clean nappy (d) has an activity. So if baby now refuses to be put down, or cries again - then the reason is sleep. Dont tolerate any more than 2 cries - that tells you it's naptime. Likewise clingy baby who wont be put down means naptime.