Before doing all that, i suggest flushing your engine oil with some anti-slugde (like stp or similar)... on my engine it solved a lot of problems including your's...
sticky piston rings in my opinion, if the engine didnt smoke before, is the most probably cause!
before that, i also did emptied a hole can of carb cleaner into the intake with the engine running without stalling...
after that, new filter and new good quality oil...
good luck