Quatre is often pronounced a little like the English "cat" or "cut" (but with a slightly different vowel) unless it is followed by a word starting with a vowel in which case the /r/ is almost always pronounced (e.g. Elle a quatre ans). The final r might not be pronounced in quatre euros (c'est quat'euros) and in a very few cases, an extra /z/ appears in spoken French (quatre-z-yeux, quatre-z-amis, ...). See La fausse liaison dans "quatres enfants" ?
When quatre is ending a sentence, it is also often pronounced /kat/ (e.g. J'en ai vu quat re.)
Vingt before a pause can be pronounced with or without the final t. There is no single "standard pronunciation", the standard mostly depending on the region. The g is on the other hand never pronounced. The pronunciation of the nasal vowel in widely vary depending on the region or the people, and might indeed be close to the vowel /a/. The et of vingt-et-un is always pronounced so vingt-et-un is never pronounced like would be the hypothetical vingt-un (or vingt ans) and even less like we pronounce quatre-vingt-un (where no /t/ is heard).
See also: Pronunciation of "vingt"
Mathieu Avanzi, le français de nos régions :