libmn: don't use indirect function call for 'run_after_switch'

The indirect call to `run_after_switch()` was waiting 10s of
milliseconds in the primesieve example. This replaces it with
a simple switch dispatch through an enum (allowing the compiler
to inline the action).