You can have that in select clause and use the new field in order by clause something 
like this:-

    q = load "Opportunity_Pipeline_Data2";
    q = filter q by 'StageName' in ["Closed Lost", "Stage 7"];
    q = filter q by 'Account_Type__c' == "Prospect";
    q = filter q by date('CloseDate_Year', 'CloseDate_Month', 'CloseDate_Day') in ["2 quarters ago".."1 quarter ahead"];
    q = group q by ('CloseDate_Month', 'StageName');
    q = foreach q generate case when ('CloseDate_Month' in ["01"]) then "Jan" when ('CloseDate_Month' in ["02"]) then "Feb" when ('CloseDate_Month' in ["03"]) then "Mar" when ('CloseDate_Month' in ["04"]) then "Apr" when ('CloseDate_Month' in ["05"]) then "May" when ('CloseDate_Month' in ["06"]) then "Jun" when ('CloseDate_Month' in ["07"]) then "Jul" when ('CloseDate_Month' in ["08"]) then "Aug" when ('CloseDate_Month' in ["09"]) then "Sep" when ('CloseDate_Month' in ["10"]) then "Oct" when ('CloseDate_Month' in ["11"]) then "Nov" when ('CloseDate_Month' in ["12"]) then "Dec" else "N/A" end as 'CloseDate_Month', 'StageName' as 'StageName', sum('Amount') as 'sum_Amount';
    q = foreach q generate case when (write case stetment here end as 'CloseDate_Month2';
    q = order q , 'CloseDate_Month2','StageName' asc);
    q = limit q 2000