re the ILP argument ("app continues running with no delay because it already has the random number it needs"): can't any RNG take advantage of that by caching the next value to return? ie. turning this
state_t s;
uint rng_next() {
X;
return Y;
}
into state_t s;
uint next;
uint rng_next() {
uint n = next;
X;
next = Y;
return n;
}