Be more careful about retirement callbacks scheduling new dtds.
Be more generic in the start-endpoint logic.
This should make everything a bit more robust on error handling.
And the complete_one logic gets much simpler...
Frig compiler flags.
Kill casts.
Simplify.
Enumerate the end-point numbers.
Flip over to the in-memory enumeration of endpoints.