NOTE: This is off the top of my head; there may be aspects of this I've overlooked, so I would welcome any correction anybody wants to supply.
You're missing a simpler way of understanding this, because you're working off letters (which should properly be enclosed in ‹› rather than []) instead of sounds (specifically, phonemes, which should properly be enclosed in // rather than []).
Here are the rules:
Your two suffixes are what linguists call archiphonemes, which are sound-types "realized" as different phonemes in different sound contexts. We may designate them as /S/ and /T/, and categorize them as
/S/ - (dental/alveolar) sibilant, realized as either voiceless /s/ or voiced /z/
/T/ - dental stop, realized as either voiceless /t/ or voiced /d/
How the archiphoneme is realized depends on the sound which ends the base word and therefore immediately precedes the suffix:
- If that sound is voiced, the suffix takes its voiced realization, and
- if that sound is voiceless, the suffix takes its voiceless realization, EXCEPT THAT
- if that sound is of the same category as the suffix, an unstressed vowel is inserted between the base and the suffix so you can hear the two sounds as distinct. Since all vowels are by definition voiced, a voiced sound now precedes the suffix, and the suffix takes its voiced realization. The vowel itself may be realized as anything in the approximate range [ɛ] – [ɪ], usually 'reduced' to [ə] – [ᵻ].
As far as I know, these rules are invariant in Standard English; but when both a plural and a possessive /S/ are applied (e.g., the Joneses' house) one may be suppressed in speech, I believe many Scots dialects realize /D/ fairly consistently as /ɪt/, and there may be other variations I've overlooked or I'm not familiar with.
Similar rules govern prefixes; but since nowadays most prefixes are of Latin or Greek origin, the rules are mostly derived from practices in those languages.
Generally, double consonants are not pronounced distinctly in English, unless they are part of different syllables and the emphasis is on the second syllable.
A word like dissatisfied is formed by adding a prefix dis- to the word satisfied. It starts off with two s in separate syllables, and can be pronounced like that- one at the end of the first syllable, one at the end of the second syllable.
A word like irregular is formed by adding a prefix in- to the word regular. The n-r combination is difficult to say, so we replace the n by another r. The same thing happens with the letter l, so in + licit becomes illicit. According to Cambridge Dictionary, the first l is not pronounced, likewise with in + modest. Note that this conversion only happens with word that passed through medieval latin: more modern words like inroad (1540), inlay (16th C) and inline (1913) are unaffected.
The same kind of conversion happens in arabic for sun letters (il+r -> irr). In arabic double consonants are always clearly pronounced, and this applies to sun letter conversions too.
In a non-rhotic dialects there is an identifiable reaason for not pronouncing the first r, because in non-rhotic dialects (England english, for example) an r followed by a consonant is not pronounced.
In rhotic dialects such as US english, the pronunciation of the n-become-r is, according to Merriam-Webster, optional.
I am a native of England (non-rhotic) and I do not pronounce it as a double r. I can and do double the r when speaking arabic, so I do understand the difference. Other natives of England do not pronounce the double r. If I heard somebody pronounce it with a double r, I would assume that they were foreign. I believe that I have heard natives of Scotland (rhotic) pronouncing it with a double r. I cannot comment on US english.
Here are recordings of me saying irregular and erectile:
And here I say irregular again, pronouncing the two r's separately.
Best Answer
I am not a native speaker, but I think I can help a bit.
You are right: 'the American pronunciation of "accept" is awfully close to "except"'. This is quite true because the sound of unstressed syllables in English will generally shift toward the center vowel, the schwa (ə).
But if you look up a dictionary, many of unstressed syllables will still be transcribed distinctively, because if you listen carefully you can still hear the difference between that vowel and the schwa sound. (Also note that they will get even closer to the schwa if the entire word is unstressed.)
According to my Free Dictionary app (AmE), accept is pronounced [ak-sept], and except is pronounced [ik-sept]. Another app (BrE) transcribed accept as either [ik'sept] or [ak'sept], and except as either [ek'sept] or [ik'sept].
Both dictionaries transcribe the unstressed syllable of accord similarly (though with different symbols): [uh-kawrd] in AmE, and [u'kord] in BrE. (This [uh] or [u] sound is similar to the sounds of the first syllable of ado and about.)
One thing to keep in mind about English pronunciation is that it could vary very widely among English accents, especially the vowels. This IPA chart of English dialects might provide a little too much information, but it captures the differences among various English dialects quite well.
Hope this helps.