You don't have to apologize SThomas, cause you were right. You CAN use the renderer string to determine software rendering. As you say, if it says something with Microsoft you have software rendering. That is true.
But the problem with your technique was that it only detects problems during startup, not sudden software fallbacks during runtime.