On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Out of curiousity I looked at the raylib source to see what they do. This looks like a pretty sensible implementation that fixes what you're hitting. Seems like Sleep() is pretty off: https://github.com/raysan5/raylib/blob/master/src/rcore.c#L4954

Yep, just sticking a while(time not right){} loop at the end fixed it!  I've uploaded a new version with the improved performance (it feels a lot better at a solid 60FPS than 30!), plus one or two other little things I added over the weekend.  Thanks for the help, friendly lain-anon :)