You might say I kind'a bailed. I decided since I was formatting the data to work with the older (and in Cygwin, slower) script, whether or not the lines had one delimiter or two didn't matter so much as getting the processing time down with the built-ins.
So I tried a similar string to the example I gave in my OP, removed one 'while IFS="" ' inside another while/do/done loop (with which I'd been trying to break up the $tags variable), and on the single delimiter -- this time a comma, though it could have just as easily been a colon or a carat (^) -- it ran as fast in Cygwin as the other one has always done in GNOME Terminal, give or take a few dozen ticks.
Which is OK with me.
The command string you suggested won't go to waste, though. I've found another old script that is also written to read text data delimited by two different bits of punctuation. I've got a slightly-faster version worked up now, but I think it could be made even zippier. I'll C&P your line and see if I can use it with this other script.
Thanks for the quick reply.
BZT