I think you'll find stepping up to Lua a significant improvement for your projects over uBASIC.
I've never touched uBASIC (nor any other BASIC since I worked with Applesoft BASIC over 20 years ago).
I'm already using set_remote_timing(). I'm using a fairly simple encoding scheme that I could certainly make better but this worked and I wanted things up and running in a short time frame. I prefix each byte with three 0 bits and then send eight bits of data. The very simple scheme I'm using is any state (low or high) shorter than 6 ms is a 0 and 6-10 ms is a 1 and longer than that is an error which resets the state machine. The arduino sends bits as 3 and 8 ms.
for clarity, to send a 21 (low bit first) I'd set the port:
high for 3 ms,
low for 3 ms,
high for 3 ms (three 0 bit prefix),
low for 8 ms (1s bit),
high for 3 ms (2s bit),
low for 8 ms (4s bit),
high for 3 ms (8s bit),
low for 8 ms (16s bit),
high for 3 ms (32s bit),
low for 3 ms (64s bit),
high for 3 ms (128s bit).
and then low.
This could certainly be much better but it does work and it could be much worse. This is mostly a first pass that got my system up to functional quickly. (and much easier to write than a 6-8 encoding or something similar)