I've traveled Singapore - Penang many times and I always take the Express bus because it is comfortable and affordable. The time taken is around 10-12 hours (including immigration clearance) depending on the traffic conditions and your driver's risk profile. It's generally very safe to take buses.
Generally, there are 2 kinds of express buses, all of which picks up passengers at Golden Mile in Singapore and drops you off at the Sungai Nibong Express Bus Terminal .
The first kind is the VIP bus, which is about 28 seaters. There are 3 seats in a row (2 seats on right, 1 seat on left). They can be reclined to a certain extent. TV is overhead -- about 2-3 units per bus, so might be disturbing to the passengers.
The second kind of bus is "Snoozer" bus, which is essentially "business class" if you use airlines as a comparison. There are 16 seaters (or around that). Also 3 seats in each row but you can recline a lot more because the seats are more spacious between one another. There's also 2 foot rests (one at the bottom of the seat, another in front of your seat) and you will get individual on-demand TV/entertainment too. If I'm not mistaken, the fare is about S$70+ for Snoozer buses and S$50 for the regular VIP bus.
You should also clarify with the ticketing agent whether your bus will go through the Causeway link or the second interchange. I prefer the 2nd interchange as it's less crowded. This is especially important when you travel back from Penang to Singapore, as most buses take the Causeway link.
Buses I would recommend are Konsortium (most popular) and Alisan Express.
Of course you can fly, but flights from SIN - PEN are very expensive unless you book ahead of time. You can also fly Air Asia from Johor Bahru to Penang - with luck and sufficient advanced planning, you may get very cheap flights. However, to me, it's quite a hassle to travel from SIN to Johor Bahru and also allow 2 hours to check in. Air Asia may also be delayed at times. I personally prefer to just hop on the bus and snooze my way to Penang.