I know we've already debated rules for draws and draw offers ad nauseam, but a very simple and good solution just struck me. So I mention it here since perhaps someone from FIDE or a tournament organiser etc might read this and decide to test the idea...
Why not simply make the first draw offer permanent?
Then there's no point in offering a draw unless the position is completely drawn.
Most draw offers come from fear of losing and are accepted for the same reason... Thus with the new permanent offer the opponent can safely decline and even try the tempting violent attack he earlier considered too dangerous, as even if it doesn't work he can always just accept the earlier draw offer.
This simple rule eliminates the bad sides of the Sofia-rules, as the referees and their opinions will not be part of the process - while still keeping the option to offer in positions that really are drawish/drawn.
Btw, as everyone here should already know, both players are already obliged to add "(=)" after the move where an offer was made - so it shouldn't be hard to verify - just make sure to check that your opponent has also noted it in the score sheet.
Repeated draw offers or counter offers also become completely unnecessary.
And there won't be any need for regret as in "Darn, I should've accepted the draw earlier" as you can always accept later, after perhaps trying the last trick that the spectators might be wondering about anyway...
And instead of being the probable end of the game, with the offer being permanent it may well become the start of a new game - as the receiving end is given free hands to try to win if he can - which should make the organisers, audience and sponsors happy!
And players who like to offer early draws will become much more popular!