Inspired by the old “Inset Straight Skeleton” add-on I decided to implement my take on the problem.
I left the intermediate steps as separate operators as they might be useful for beveling, roofs of buildings (architecture), map isolines of mountains, etc.
Roof model comparison:
You will probably find some polygons which cause glitches, so please post them here and I can try to fix the code accordingly.
Download from GitHub: