Your desired segment condition "Transaction Value is less than or equal to 3000" doesn't work because eVar values are always stored as strings. So while you're reading a number 3000, AA only recognises it as the string "3000" and so it cannot perform any math on it.
eVar counters won't work because, as the name suggests, they are used to count, kinda like a hit counter. So you can't specify your own value to the eVar.
So yes, your best option is to use numeric events to track Transaction Values.
One other option is to classify your eVar's values into buckets. Fortunately, Classification Rule Builder supports regular expressions, so that should make the buckets fairly easy to specify.