I don't understand how the existing naming convention for promoting functions to monadic versions can apply to when/unless since they already operate on monads.
I would hesitate to use an 'm' prefix for monadic code is because the Monoid typeclass does that (mempty, mappend, mconcat).
I would support a change in the documented convention for the 'm' prefix to only being used for MonadPlus (in addition to Monoid).
I haven't found myself needing ifM, but I will look at my code and see if I was missing opportunities to make it nicer.