How can I determine how on-beat an input is in Unity? (with no delay)

Thank you for the detailed explanation.

An option may be to add markers for the off beats which will trigger the FMOD Engine | Studio API Reference - FMOD_STUDIO_TIMELINE_MARKER_PROPERTIES, which also has the position property.

Correct, the event timeline position is based on the studio update period of 20ms. You could try improve this update time by reducing the FMOD Engine | Core API Reference - System::setDSPBufferSize which can be set in the FMOD integration settings:

.

There is also the option of using the FMOD Engine | Core API Reference - ChannelControl::getDSPClock. A user has created a created a script using the DSP Clock here: Perfect Beat Tracking in Unity? - #28 by bloo_regard_q_kazoo.

Hope this helps!