$participant_status_id shows previous value in email template
This was posted a while ago, but I thought I should post the solution I finally found to the problem (which still exists in my version 4.7.29 install)

The solution to this problem was an API call. 
While the value of $participant_status_id shows the value PRIOR to update, with this Smarty code added somewhere near the top of the template:

{crmAPI var='partinfo' entity='Participant' action='get' event_id=$event.id contact_id=$contactID}
{foreach from=$partinfo.values item=participant}{/foreach}&lt;/p&gt;


I can then use the variable $participant.participant_status_id which will contain the correct status value reflecting the update made in the "Edit Event Registration" screen.