AAX AudioSuite processBlock sample accuracy

I’m investigating using Juce to build an AudioSuite plugin for Pro Tools.

I’ve used Juce for AAX Native plugins quite a bit in the past for sample accurate processing including bouce and offline bounce (aligning processing to the timeline position of the Pro Tools timeline).

When processing a 1 second (48000 samples) selection, I seem to get many more processBlock calls than expected. I seem to always get 256 calls with a buffer of 1024. This is independent of the hardware buffer size set in the Pro Tools playback engine dialog.

Additionally, the alignment of my processing doesn’t align with the selection. I’m muting a every other buffer so I would expect the first 1024 samples to be silent, but mutes the first 878-ish samples.

I have looked at the juce::AudioPlayHead::CurrentPositionInfo data which says the timeInSamples is always 0 (kind of makes sense) and the ppqLoopStart/ppqLoopEnd data generally makes sense (thought this is problematic with tempo maps).

I know the stock Signal Generate aligns properly as I can have it generate a square wave and see it line up sample accurately for the first sample.

Does anyone have insight to what might be going on?
Is this typical behavior for AS plugins build in Juce?
Is there some trick to get alignment just right?

Currently JUCE doesn’t have full support for AudioSuite: AAX_CHostProcessor support