How to model realistic surface bubbles that touch glass

You can basically use METABALLS. And for bubbles inside coffee, reverse bubble surface normals.

You can use particles and materials together. You don’t need create all bubbles with particles. Only big bubbles can be particles, micro bubbles can create with texture, Normal and Displace maps. Like this:

Do you want Dispersion or not? If you want you can use VSHADE.

https://blenderartists.org/uploads/default/original/4X/6/4/d/64de668d15a60c743129bb5714013f037c3a9766.jpeg