I’ve implemented the fail safe check, I committed the change.
However I don’t think my approach is so dirty that can’t be accepted. I’ve added a comment on GitHub that explain (in short) how it works.
I left the original substepping algorithm working, I’ve written new class to handle the fixed delta time.
Let me know what’s wrong.