I've ran your script on 1.4.1 for 30 minutes with the param knob at 50% (after wiggling it around a bit). I'm not triggering any of the jumpy edges functionality as I'm not sure how you have it patched. But, just the metro script running is not causing any issues whatsoever.
I'd investigate the following questions to determine if it is your bus, the 2.0 firmware or the interaction with the TXo:
Q1: Is the bus board working properly?
You can check this by plugging only the bus board into the europower supply. With no devices connected, check the voltage on the two i2c pins.
In the above diagram, pin 3 is the ground pin. You want to measure pins 1 & 3 and pins 2 & 3. Each should read around 3.271 volts.
Q2: Do simpler scripts fail
Try simply blinking your TR lights and setting random CV values.
L 1 8 : TO.TR.TIME I 50
L 1 8 : TO.TR.PULSE I
L 1 8 : TO.CV I V RAND 10
Try running that at rapid M rates and see if you get the same locking behavior. This will help you identify if there is a problem with your specific script or configuration.
Q3: Do calls to non-existent ports fail?
This was the revealer for me. Calls to ports that aren't on the bus (either TELEX or Ansible) would cause the Teletype to quickly lock when the pull-up values weren't proper. Send commands outputs greater than 8 (TO.TR 8+ / TO.CV 8+ / TR 8+ / CV 8+) and see if you don't get a near-immediate lock up.
Q4: Does your TT lock on the 1.4.1 release?
This will help us rule out 2.0 vs 1.4.1 differences. Downgrade your TT to 1.4.1 and then try to run the same script. Let us know what happens.
Q5: Does wearing a hat help??
Try wearing a number of different hats while using your teletype. Not just any old baseball cap; really dig deep into your closet. Get out that old Fez and/or Ushanka. Bonus if you wear mismatched socks as well. (Stripes and polkadots are usually very revealing in these cases.)
Let us know what you learn!