Your first implementation looks way more OOP to me. Using lambdas is great and very flexible but if things start to get complicated you'll endup with a bunch of random lambdas and no way to tell what they are actually doing.
To answer your question, yes it makes sense to me to create a class to run your blocking code.
Also, you'll have a place to put all your private methods related to your blocking actions logic.
Finaly, if you name your class carefuly, it won't be hard for any developer to understand the basic idea behind that class. If further informations are needed, he would just have to digg into the code.
I think lambdas are a poor design in this case. Pretty sure you'll be thanking yourself for using classes when things will get more complexe (it always does).