Throughout the day I will happen to notice that my status has somehow flipped from available to busy/in meeting. I have no idea how/when it's happening, but I definitely do not want it to do this. I imagine Teams is trying to figure out from my activity if I'm available or not, but it's getting it very wrong. How can I make it stop with this auto flipping and lock it down to manual?
I assume that you are using Outlook 365. I believe it is the case that your Teams presence status is tied to your Outlook calendar events. Whenever you have a meeting where you've marked yourself as 'busy' or 'out of office' for that calendar event, it will reflect on your Teams status as well. To answer your question, going forward, you will have to mark your calendar events as 'free' instead of the default 'busy', unless of course you are actually busy.
As Teams changes status according to Outlook calendar, I just schedule 'appointments' and set it to show as Free / Out of Office, with reminders disabled. It mass pollutes the calendar a bit, but at least get the Teams status to behave like you want as a workaround.
I do this, especially in current pandemic and working from home, to let co-workers know when I am on or not, and not to message me just because my work phone triggers a Teams status that I am available when I am really not, prompting some late workers or out of continent folks to poke for stuff. :P