Strange you should say that --- the experts on the C standard working group clearly thought otherwise. Or why else do you think they wrote all that stuff about the exact-width integer types all being optional?
That's not actually a separate issue. A C implementor is not at liberty to provide uint32_t, but forbid qualifying it as volatile. I.e. if they want to shy away from volatile uint32_t, they can't offer uint32_t at all.
Volatile has just about nothing to do with that. You're looking for (an improved version of) sigatomic_t.