I believe a number of video game engines use this approach.
There’s a talk about this approach in the game Destiny: https://www.gdcvault.com/play/1022164/Multithreading-the-Ent...
And also in the Uncharted engine: http://twvideo01.ubm-us.net/o1/vault/gdc2015/presentations/G...
They go a step further by allowing threads to pause and resume their state by changing the stack pointer.
These sort of systems are useful in games where you basically want to be using all of the cpu all of the time and there’s no reason to ever give control back to the operating system’s scheduler (with mutexes).