archives, last discussed in 2008. The solution offered was to use virtual
trash and then purge.

That's not significantly different from going to a physical trash and

deleting emails and doesn't offer any finer control.

What I'm looking for is either a button/drop-down on the current delete

button that permanently deletes the email similar to the way shift+ delete
works on desktop clients.

This would allow me to delete emails on the fly whilst still keeping

those in trash I might wish to archive or undelete at a later date.

Jan's reply makes me think it is possible.

You can expunge individual messages too, and we already have a method
argument in IMP's API to delete and purge individual message. So it
should be rather simple to implement (keyhandler, AJAX API method,