Bien, a falta de respuesta aproveche a probar todo lo que se me ocurrió ...
Me parece que la forma más "limpia" o correcta de hacer lo que quería es utilizando la clase
Timer de
System.Threading (esta aclaración viene a que también existe una clase de igual nombre en System.Diagnostics y System.Windows.Forms).
A continuación el código relevante:
System.Threading.Timer temporizador = new System.Threading.Timer(new TimerCallback(metodo), objetoParametro, tiempoEstipulado, new TimeSpan(-1));
Donde
metodo es el método que se quiere ejecutar (static void),
objetoParametro son los parametros que le quiero pasar al método,
tiempoEstipulado es una instancia de la clase
TimeSpan que contiene el tiempo que se debe esperar para ejecutar el método, y el último parametro indica que solo debe ejecutarse una vez.
Si alguien conoce otra forma mejor aún, no dude en postearla.
Un saludo.