The problem I found when I tried to use DAW sync messages is that the time values followed audio driver ticks and did not follow integer values in the timeline. I was using [r _playhead] but I think I saw similar behavior from [playhead]. Generating bangs in response to these ticks would be late by some ms.
My approach to this (in an abstraction, playhead-tick, at http://github.com/jamshark70/hjh-abs) was to set a threshold within the beat, like 0.9 or 0.8, and when the incoming time value exceeds the threshold, calculate the time until the next true beat and use this with [delay] to output the bang (or beat number) at exactly the right time.
This handles only beats, not subdivisions, but another abstraction in the same library, [burst], serves as a clock multiplier to get any subdivision you need. Both of these objects use tempo change info from the DAW so the subdivisions will change speed too, if the DAW tempo changes.
hjh