Mutt does not support virtual folders, so there is nothing fancy really about how I use Notmuch as I only use it for search (not tagging). I have a macro to call `mutt-notmuch.py` (there is a Perl version as well) to: search, create a temporary read-only maildir based on the current TTY, and lastly populate in with symlinks to the search results – Mutt then switches into that maildir.
I would love to use Notmuch more, but syncing between devices becomes a pain when everything is no longer a file. There is muchsync [1], but I really do not want to go down the rabbit hole of resolving potential conflicts, etc.