Photon interrupt latency

System.ticks() has not got a 1ms resolution but does in fact count the clock cycles, so each tick is about 8.3ns on the Photon.
https://docs.particle.io/reference/firmware/photon/#system-ticks-

micros() in turn returns µs since system start derived from the system ticks.
https://docs.particle.io/reference/firmware/photon/#micros-

I’m not sure about the 5µs interrupt latency either, it sounds a bit much, since it’d equal to 550+ clock cycles.
It might turn out that some interrupt events might be serviced that slowly in case of higher priority ISRs being active (and slow), but I wouldn’t think this is the general rule.

If @stevech is refering to something like this post
HAL Hardware Timer Library Development

I think the issue there is that interrupts firing every 5µs would be prone to be missed from time to time or interfere with the overall system performance.

But after some tests I have to say, that you’re looking at something of 1.8µs - which is still way more than I anticipated.
I used this code to test the timing

SYSTEM_MODE(SEMI_AUTOMATIC)

const int pinInt  = D1;
const int pinTrig = D0;

volatile uint32_t trig;
volatile uint32_t start;

uint32_t correct;

uint32_t ms;

void ISR()
{
  pinResetFast(pinTrig);
  trig = System.ticks();
  digitalWriteFast(D7, !pinReadFast(D7));
}

void setup()
{
  Serial.begin(115200);
  pinMode(pinInt, INPUT);
  pinMode(pinTrig, OUTPUT);
  pinMode(D7, OUTPUT);

  start = System.ticks();
  pinSetFast(trig);         // these actions are required for the test and 
  pinResetFast(trig);       // add to the timing, but are not to be considered
  trig = System.ticks();    // part of the actual interrupt latency
  correct = trig - start;

  //Particle.connect();
  //waitUntil(Particle.connected);

  attachInterrupt(pinInt, ISR, RISING);
}

void loop()
{
  if (trig != 0)
  {
    Serial.print("Interrupt latency including extra time for trigger test ");
    Serial.print((trig - start - correct) * 8.333, 3);
    Serial.println(" ns");
    Serial.printlnf("(%4.3f corrected)", correct * 8.333);
    trig = 0;
  }

  if (millis() - ms > 500)
  {
    ms = millis();
    start = System.ticks();
    pinSetFast(pinTrig);
  }
}