I use plugsync~ to read the Ableton transport.
This is very efficient (no metro needed, everything starts automatically).
You can get the bpm in samples, so that’s very accurate, juste read the doc here:
But it really shouldn’t be much of a problem.. You can simply use the "tempo" property in the song class. This is something you can get, set or observe; its no more difficult than getting any other kind of property value.