I manually created a timer and printed the timeleft in _physicsprocess to see if something would avail itself. The timer was set to 0.021 seconds.
on windows, it printed 0.021, then jumped to 0.013361, then 0.012669, and so on, descending to zero pretty evenly from there and each print showed a decrement of around 1 thousandth.
on the m1 mac, it printed 0.021, then jumped all the way to 0.0043, and decremented every 1 thousandth of a second from then on. I tried this multiple times to see if there were any discrepancies in the logging from physics process, but it printed the same jumps for both every time.
so i don't know a fix, but at the very least, theres some more info. pretty reliably, and not just tied to timers created as 1-shots as part of a yield, on the m1 mac it seems to always just skip a chunk of time after the start, but it still recognizes that initial time.
There's probably a way better way of describing all this but it's pretty above my ability level lol. hope this adds more useful info, thanks again for any help