Here is a simple idea in pseudo code...
Write a stored proc that will create a temporary table with the columns that you want returned. It will look something like
Create Table #TempResults
ID as int (make this an identity column)
ShortDescription varchar(20)
LongDescription varchar (200)
Run your 4 queries as an INSERT Select statement into your temporary table. Do all of your row ordering at insert time.
After you have queried your 4 different ways, then select your data.
SELECT *
FROM #TempResults
ORDER BY ID DESC
This will get the data from your temporary table in the order you put it in.
Make sure to drop the temporary table when you are done.
I have not dealt with COMMON TYPE EXPRESSIONS, so I won't try to give you code, but it looks like that may simplify the approach I offered. You can always do it the long way first and make sure it works, then refactor it to the cool code later.
Good luck and I hope this helps!
Hogan