The proper way to manage this problem is to have a good relationship with your assembly subcontractor.
They should be able to keep track of their own stock levels, any additional stock which they hold but which is specifically reserved for you, and any distributor stock that they're able to draw from.
Most importantly, they should keep track of the lead times on any critical components, and proactively warn you when it's time to place orders, so as to ensure you don't find yourself staring at a PCB with an empty site where a chip should be.
If you have good stock management, then you shouldn't run out of anything provided your usage rate is fairly predictable. If you don't, then you'll get the dreaded email which says "we can't get part X in time for this build, please can you let us have an alternative component which is an exact drop-in replacement that's available ex-stock right now".
There are pragmatic choices you can make at design time. If one variant of a microcontroller is available from stock, but another is on an 8 week lead time, pick the readily available one - even if it has more memory than you need and costs an extra 20p. Talk to your distributor, they'll know what's in full production and what only gets built to order every 6 months if you're lucky. If you can use the same parts on multiple products, then you always have the option to rob parts from one kit to fill another.
Don't redesign a PCB to use something else unless a key component is outright discontinued - and even then, a last-time buy is often a better option. Redesigns are costly in time, tooling costs, certification and paperwork - even if it's something as simple as choosing a part in a different package.