I have not had any problem with ASIO, but I use a version of PD with the static variable changes in pa_asio.cpp
// static int sDefaultOutputDeviceID = 0; // comment out defaults // static int sDefaultInputDeviceID = 0;
static int sDefaultOutputDeviceID = 2; // replace default driver static int sDefaultInputDeviceID = 2;
2 is the device number of my soundcard's native ASIO driver, 0 and 1 are the MME and WDM ASIO drivers. As far as I can tell, PD does not set this number from the command line, so at the moment you must change it and recompile.
Best regards,
Michael