Unfortunately there isn’t really a way of triggering a sound immediately, it’s all based on loops. It’s something I’d like to do include in FoxDot at some point though. What’s happening when there is latency is that when you specify the duration as 32, FoxDot will start looping at the start of the next 32 beat cycle. So it’s probably waiting the remaining beats before starting your sound.
For longer audio clips, i.e. a few seconds or more, you’ll want to look at the loop
synth which lets you cut it up into smaller chunks and you could start playing it half way through or calculate the position to start immediately. You can check the docs here and you might also find this topic useful.